主从模式(Master-Slave ): 一主多从,主(master)偏向写数据,从(slave)偏向读数据,master数据会同步到slave.
搭建: 简单方便
效果:
- 主可以读/写数据(主要负责写) 、从一般设置只读
- 分散压力
搭建流程:
- 确认服务器之间网络可以互通
- 修改
主Redis 、config配置,replica-read-only yes (副本只读) - 修改
从Redis 实例 config配置 👇
#配置主master节点ip port
replicaof 192.168.2.207 6379
#主节点密码
masterauth 123456
- 成功启动所有实例
- 主服务redis客户端,
info replication 验证搭建信息
推荐:Redis-Desktop-Manager 工具,是真的好用。
数据同步流程
- 初次同步:主服务器 ->
RDB 快照文件 从服务器,从服务器载入数据,主服务发送写命令 ->从服务器,初步实现同步 - 后续同步:每次主服务器收到的命令,会同步到从服务器,实现数据一致。
哨兵模式(sentinel )
- 启动一个哨兵系统,监视Redis实例的运行,主实例蹦了,在从实例里面选举出一个新的主,实现高可用!
配置:
- 主 conf:
masterauth "123456" (你的redis密码) //因为主挂掉后可能变为从,就需要验证密码了 - 从 conf:确认配置,
requirepass 123456
sentinel.conf 配置 (在redis安装目录下)
sentinel.conf:
daemonize yes
logfile "/opt/redis-6.2.6/sentinel.log"
sentinel monitor mymaster 192.168.2.207 6379 1
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 10000
sentinel failover-timeout mymaster 10000
启动哨兵系统,监视redis各实例: redis-sentinel sentinel.conf
日志:tail -f sentinel.log
停掉主redis实例,查看日志:
说明:
- 主实例挂掉后,所有实例都先回停一下,客户端连接不上。然后会选举出新的master,接着就可以重新链接了。
- 主实例重新启动后,会成为一个新的
slave ,从实例
Redis 集群:
|