一、主从模式
简介
redis中可以通过slaveof 或者配置文件设置slaveof选项,来让当前server成为某个server的从节点,本server就是被称为从服务器(slave),对方被成为主服务器(master)。slave会复制master的数据,master可以接收读写请求,slave默认情况下只能读不能写。
优点
- slave会复制master数据,达到备份效果
- 多个slave帮master分担用户的查询压力,master只需要处理读请求,达到负载均衡效果,减轻master压力
缺点
- master单点故障后整个redis无法继续提供写服务,只能由slave继续提供读服务,这个是很致命的。
- master挂掉后不会自动选举master
配置
我在单机上三个端口运行三个server,将redis配置文件复制三份 ,
- port server监听端口 分别为6379,6381,6382
- logfile server的log文件名, 分别为6379.log、6381.log、6382.log、
- slaveof 6379不变, 其它两个为 localhost 6379
- pidfile 三个server的pidfile名应不同
- masterauth master服务器的验证密码, 没有则不填
二、哨兵模式
简介
redis哨兵(sentinel)是官方提供的管理工具,专门负责主从模式的监控。它能持续监控master是否正常工作,,当master出现故障时启动恢复机制提升一个slave为master,然后使其它slave成为新master的slave,,当原来的master重新启动时,哨兵会将其降级为slave。
配置
- 复制redis安装路径下的sentinel.conf,
- 修改sentinel配置 , ,监听master的6379端口
- 启动三个server。 ./redis-server 6379.conf ./redis-server 6381.conf ./redis-server 6382.conf
- 启动sentinel
- 进入各个server的cli, ,看到6379现在是master,INFO REPLICATION可以查看主从状态,,进入6381、6382同样方法查看
- 关闭6379,尝试sentinel的自动选主。
- 重新用 info replication 查看一下主从情况。现在6379已经关闭, 6381情况 ,6382