redis主从复制读写分离
概念
主从复制,就是将一台Redis服务器的数据,复制到其他Redis服务器,前者称之为主节点(master/leader),后者称之为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave以读为主。
默认情况下,每台Redis服务器都是主节点;
且一个主节点可以有多个从节点,但一个从节点只能有一个主节点。
环境配置
每个节点要修改的配置文件
port 5001 #端口 pidfile /var/run/redis_5001.pid #pid名字 logfile "/home/apps/redis-5.0.5/logs/5001.log" #log文件名字 dbfilename dump5001.rdb #dump.rdb名字
通过命令配置主从(临时的)
SLAVEOF 127.0.0.1 5001 #将当前节点设置为指定节点的从节点
通过配置文件配置主从(永久的)
replicaof 192.168.190.131 5001 #将当前节点设置为指定节点的从节点 masterauth <master-password> #如果主节点有密码的话要在这设置密码
查看节点信息
info replication # 查看当前节点的信息 # Replication role:master # 角色master connected_slaves:0 #没有从机 master_replid:6eed7dea191603a3e1dd7a3fb1d61163d17aabd3 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
总结
一个集群最少要三个节点(一主二从)
主节点可以读写,从节点只能读
主节点如果断开连接,从节点依旧可以读,只是这个集群就失去了写操作。如果主节点重新连接了,从节点仍然可以读取主节点的信息。
主从复制原理
Slave启动成功连接到master后会发送一个sync同步命令
Master接收到命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据的命令,在后台进程执行完毕后,master将传送整个数据文件到slave,并完成一次完全同步
全量复制:slave服务在接收到数据库文件数据后,将其存盘并加载到内存中
增量复制:Master继续将新的所有收集到的修改命令依次传送给slave,完成同步
只要重新连接master,一次全量复制将自动执行
相关推荐
王道革 2020-11-25
wangdonghello 2020-11-03
Langeldep 2020-11-16
chenhualong0 2020-11-16
聚合室 2020-11-16
koushr 2020-11-12
MRFENGG 2020-11-11
guoyanga 2020-11-10
fackyou00 2020-11-10
Orangesss 2020-11-03
dongCSDN 2020-10-31
rainandtear 2020-10-30
Quietboy 2020-10-30
liuyulong 2020-10-29
fansili 2020-10-29
温攀峰 2020-10-23
jackbon 2020-10-19
kaixinfelix 2020-10-04