1.安装Redis主从系统:
从官网下载redis-3.2.9,并且安装。
1.1 安装redis
$ wget http://download.redis.io/releases/redis-3.2.9.tar.gz
$ tar xzf redis-3.2.9.tar.gz
$ cd redis-3.2.9
$ make && make install
1.2 配置master上的redis.conf
bind 192.168.10.10
port 6379
daemonize yes //启动redis后台运行
masterauth 123456 //master的密码,如果redis设置了密码,主从密码要设置成一样的。
requirepass 123456
logfile "/var/log/redis/redis.log"
1.3 配置slave上的redis.conf。
bind 192.168.10.11
port 6379
daemonize yes //启动redis后台运行
slave 192.168.10.10 6379
masterauth 123456 //master的密码,如果redis设置了密码,主从密码要设置成一样的。
requirepass 123456
logfile "/var/log/redis/redis.log"
2.测试主从是否同步。
在mster上创建:
redis-cli -h 192.168.10.10 -p 6379 -a 123456
192.168.10.10:6379>set name abc
OK
192.168.10.10:6379>get name
"abc"
在slave上查看
redis-cli -h 192.168.10.11 -p 6379 -a 123456
192.168.10.11:6379>get name
"abc"
- 从库默认是只读权限,无法写入数据
可以查看即为主从配置成功。
3.主从切换
当master出现故障或者宕机的时候,需要手动将slave提升为master。
3.1 停止master
redis-cli -h 192.168.10.10 -p 6379 -a 123456 shutdown
3.2 将slave 设置成master
redis-cli -h 192.168.10.11 -p 6379 -a 123456
192.168.10.11:6379>slaveof NO ONE
OK
验证写权限
192.168.10.11:6379>set name aaa
OK
192.168.10.11:6379>get name
"aaa"
4.如果原来的master恢复正常,要重新切回去。
4.1 将现在主redis上的数据保存
查看
192.168.10.11:6379> get name
"aaa"
192.168.10.11:6379> save
OK
4.2 将现在主redis根目录中的dump.rdb文件拷贝覆盖到原来master的根目录。
4.3 启动原来的主redis
$ src/redis-server redis.conf
src/redis-cli -h 192.168.10.10 -p 6379 -a 123456
192.168.10.10:6379> slaveof NO ONE
OK
4.4 将当前主redis中切换
src/redis-cli -h 192.168.10.11 -p 6379 -a 123456 slaveof 192.168.10.10 6379
5.总结
- redis的单主从模式不推荐使用,当master出现问题的时候,切换slave太过麻烦,并且耗时太长,容易造成数据丢失。
参考地址
https://redis.io/
http://blog.csdn.net/zfl092005/article/details/17523945