设置主从
假设有三台机器,或者为了测试用一台指定不同的端口也行。这里就用一台服务器,分别用7369,7370,7371端口。
将redis.conf 拷贝三份,图中的redis.conf端口设置的是7369,其他端口如文件名。
这里假设7369为master ;7370,7371 为slave
如果三台服务话,每台服务器安装的redis都有自己的redis.conf。
同理:再将sentine.conf拷贝三份。如图
修改配置redis.conf文件
- 编辑文件redis.conf内容。vim redis.conf
- 注释#bind 127.0.0.1 -::1
- 关闭保护模式 protected-mode no
- 这里建议修改端口,为了安全不要使用默认端口 port 7369
- 后台运行 daemonize yes
- pidfile "/var/run/redis_7369.pid"
- 日志路径 logfile "/usr/local/redis7.0.0/log7369"
- 修改rdb文件名称 dbfilename "mydump.rdb" ,默认使用rdb持久化,如果需要用aof则需要修改appendonly yes
- rdb文件保存路径 dir "/usr/local/redis7.0.0/redis-7.0.0/myredis"
- 设置密码 requirepass "123456" 注意:因为在哨兵选择master之后,其他slave需要将master数据同步,所以保证每台机器密码设置一致。
修改配置redis7370.conf文件 (redis7371.conf 同理)只需要slave绑定master即可
- 编辑文件redis.conf内容。vim redis7370.conf
- 注释#bind 127.0.0.1 -::1
- 关闭保护模式 protected-mode no
- 这里建议修改端口,为了安全不要使用默认端口 port 7370
- 后台运行 daemonize yes
- pidfile "/var/run/redis_7370.pid"
- 日志路径 logfile "/usr/local/redis7.0.0/log7370"
- 修改rdb文件名称 dbfilename "mydump7370.rdb" ,默认使用rdb持久化,如果需要用aof则需要修改appendonly yes
- rdb文件保存路径 dir "/usr/local/redis7.0.0/redis-7.0.0/myredis"
- 设置密码 requirepass "123456"
- slave绑定master, replicaof 127.0.0.1 7369
- 设置master密码,masterauth "123456"
启动master 7369 可以查看有绑定两台slave
启动 slave 7370 可以查看有绑定master7369
7371同理
测试从7369添加数据,7370,7371可以获取到
注意:只有master可以set值,slave不能set,只能get
当master宕机之后,默认不会将slave转换成master。如何将slave转换成master 将涉及哨兵sentinel
设置哨兵
哨兵部署机器数最好用奇数,因为在投票的过程,票数好比较。这里在一台服务器,以27369,27370,27371端口启动。sentine.conf 27369 ,sentine1.conf 27370,sentine2.conf 27370修改 sentine.conf
- 关闭保护模式 protected-mode no
- 修改端口 port 27369
- 后台运行 daemonize yes
- logfile "/usr/local/redis7.0.0/sentine-log7370" 设置日志
- dir "/usr/local/redis7.0.0/redis-7.0.0/myredis" 设置工作目录
- sentinel monitor mymaster 120.79.163.227 7369 2 设置哨兵redis master投票数2票
- sentinel auth-pass mymaster 19970503 主从关系有变化,哨兵需要自己设置主从关系,需要提供服务其他redis密码
sentine1.conf, sentine2.conf 同理
启动sentine
假设将7369master 关掉,哨兵会选举其中一台当中新的master
如图可以看出6370成为新的master,6371还是slave
注意:在重新设置主从关系会出现短暂异常,在原来的slave 获取值会链接失败,重新获取再获取一次就好。