一位爱好技术的橘右京的哥哥橘左京
1. Redis主从复制
虽然Redis读写速度极快,但随着项目访问量的增多Redis的操作越来越频繁,势必会造成一定的延迟,为了解决这个问题,可以采取主从架构Master/Slave模式,主负责写,Salve则负责读。
1.1 搭建方式(windows)
1)将redis文件夹复制三分(为方便哨兵配置)
2)更改对应的Redis端口号配置
分别为:
port 6379
port 6380
port 6381
3)将3个Redis实例加入到服务列表并启动
命令:redis-server --service-install redis.windows.conf --loglevel verbose --service-name 服务名称
4)在Redis根目录下cmd使用命令进入三个客户端
命令:redis-cli -p 端口号
5)设置主从关系
方式一
在6380、6381从节点Redis中输入slaveof 127.0.0.1 6379(这种方式Redis重启后会失效)
方式二
在配置文件设置 slaveof 127.0.0.1 6379
可使用 info replication 命令查看各个节点的角色
1.2 测试(windows)
1)通过命令发现6379已成为主节点
2)6380成为从节点
3)6381成为从节点
从节点不可执行写入,可通过配置文件 “slave-read-only” 修改,写入后也只有当前节点存在刚写入的数据,若未设置哨兵机制,master挂掉后无法选举新的master,各个节点依然维持各自角色。
1.3 主从复制原理
全量同步:
全量同步一般发生在Slave初始化阶段,会将Master数据全部复制一份。
1)Slave服务器向Master服务器发起Sync命令
2)Master接收到命令后执行BGSAVE命令生成RDB快照,并将之后的数据写入缓冲区
3)快照生成完毕后传Slave,Slave首先清除旧数据
4)Slave载入快照数据,完毕后载入缓冲区的写命令
5)Slave开始接收命令,并同步Master的写命令
增量同步:
从服务器初始化之后进行全量同步,建立连接之后进行增量同步。