赞
踩
概念
主从复制,是将一台Redis服务器上的数据,复制到其他的Redis服务器上。前者称为主节点(master/leader),后者称为从节点(salve/follower);数据的复制是单向的,只能有主节点复制到从节点,master以写为主,salve以读为主。默认情况下,每台Redis服务器都是主节点,并且一个主节点可以有多个从节点或者没有从节点,但是一个从节点只能有一个主节点。
主从复制的作用
那为什么我们要用主从复制或者集群呢?
在实际项目中,对于数据库的操作,大多数都是读操作,写操作只是很小的一部分,接下来就实际搭建一个简单的主从复制Redis服务
主从环境
Redis默认它自己本身是主库,所以我们可以只配置从库就行
# 查看主从复制的信息 127.0.0.1:6379> info replication # 查看当前库的信息 # Replication role:master # 角色 connected_slaves:0 # 从机的数量 master_replid:4f4c07fd26de085acfb02e0439a17ed4ec7627da master_replid2:0000000000000000000000000000000000000000 master_repl_offset:0 second_repl_offset:-1 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0 # 然后编写redis.conf,现在是搭建一主二从,所以写4个配置文件修改以下内容,保证不重复就行 port 6379 # 端口 daemonize yes # 后台运行 pidfile /var/run/redis_6379.pid # pid文件 logfile "6379.log" # 日志文件名 dbfilename dump6379.rdb # rdb文件名 # 紧接着依次启动Redis
主从配置
上面把需要的环境准备好了,一主二从,现在开始配置从机,Redis默认为主机是不用去配置的
# 一主:6379,二从:6380、6381 # 通过 slaveof 命令将当前设置为从节点并设置它的主节点 # 语法:slaveof 主机ip 主机端口 127.0.0.1:6380> SLAVEOF 127.0.0.1 6379 # 指定跟随的主节点IP,端口 OK 127.0.0.1:6380> info replication #从节点信息 # Replication role:slave # 角色变为从节点 master_host:127.0.0.1 # 主节点的IP master_port:6379 # 主节点的端口 127.0.0.1:6381> SLAVEOF 127.0.0.1 6379 # 指定跟随的主节点IP,端口 OK 127.0.0.1:6381> info replication #从节点信息 # Replication role:slave # 角色变为从节点 master_host:127.0.0.1 # 主节点的IP master_port:6379 # 主节点的端口 127.0.0.1:6379> info replication # 主节点信息 # Replication role:master # 角色为主节点 connected_slaves:2 # 从节点的数量 slave0:ip=127.0.0.1,port=6380,state=online,offset=168,lag=0 # 从节点的信息 slave1:ip=127.0.0.1,port=6381,state=online,offset=168,lag=0 # 从节点的信息
除了通过命令去配置主从,还可以通过配置文件去配置
# 修改从节点的配置,修改以下参数 # 指定主节点的IP 端口 replicaof 127.0.0.1 6379 # 如果主节点有密码,添加密码 masterauth password # 然后依次启动redis # 从节点信息 127.0.0.1:6381> info replication # Replication role:slave master_host:127.0.0.1 master_port:6379 # 从节点信息 127.0.0.1:6380> info replication # Replication role:slave master_host:127.0.0.1 master_port:6379 # 主节点信息 127.0.0.1:6379> info replication # Replication role:master connected_slaves:2 slave0:ip=127.0.0.1,port=6380,state=online,offset=70,lag=0 slave1:ip=127.0.0.1,port=6381,state=online,offset=70,lag=0
复制原理
从机启动成功连接到主机后会发送一个同步命令,主机接收到命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕后,主机将传送整个数据文件到从机,并完成一次同步
全量复制:从机在接收到数据库文件数据后,将其存盘并加载到内存中
增量复制:主机继续将新收集到的所有修改的命令一次传递给从机,完成同步,
但是,只要从机重新连接到主机,一次完全同步(全量复制)将被自动执行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。