環境描述:
主Redis:192.168.10.1 6379
從redis:192.168.10.2 6380
一、主從配置
1、将主從redis配置檔案redis.conf中的daemonize no 改為 yes
2、 修改從redis配置檔案redis.conf中的port 6379 改為 6380,配置如下:
slaveof 192.168.10.1 6380 #指定master的ip和端口
masterauth 123456 #主伺服器有密碼需開啟此項配置
3、啟動主從服務
主redis:redis-server redis-6379.conf
從redis:redis-server redis-6380.conf
4、測試資料同步
主redis:
redis 127.0.0.1:6379> get name
“zhangsan”
redis 127.0.0.1:6379> set name redis-6379
OK
redis 127.0.0.1:6379> get name
“redis-6379”
redis 127.0.0.1:6379>
從redis:
redis 127.0.0.1:6380> get name
“redis-6379”
redis 127.0.0.1:6380>
5、預設是讀寫分離的(從2.6開始,從redis預設為隻讀)
在從redis:redis-server redis-6380.conf
redis 127.0.0.1:6380> set name 123
(error) READONLY You can’t write against a read only slave.
二、主從切換
1、停止主redis
[[email protected] redis-2.8.3]# redis-cli -n 6379 shutdown
[[email protected] redis-2.8.3]# redis-cli -p 6379
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>
2、将從redis設成主redis
[[email protected] redis-2.8.3]# redis-cli -p 6380 slaveof NO ONE
OK
3、測試從redis是否切換從主redis
[[email protected] redis-2.8.3]# redis-cli -p 6380
127、0.0.1:6380> set name 123
OK
127、0.0.1:6380> get name
“123”
127、0.0.1:6380>
4、查詢redis狀态
127、0.0.1:6380>info
…
vm_enabled:0
role:master
db0:keys=1446,expires=224
5、原來的主redis恢複正常了,要重新切換回去
a、将現在的主redis的資料進行儲存
127、0.0.1:6380> get name
“abc”
127、0.0.1:6380> set name 123
OK
127、0.0.1:6380> get name
“123”
127、0.0.1:6380> save
OK
127、0.0.1:6380> get name
“123”
127、0.0.1:6380>
b、将現在的主redis根目錄下dump.rdb檔案拷貝覆寫到原來主redis的根目錄
c、啟動原來的主redis
主redis# redis-server redis-6379.conf
d、在現在的主redis中切換
主redis# redis-cli -p 6380 slaveof 192.168.10.1 6379
e、查詢redis狀态
redis 127.0.0.1:6379> info
vm_enabled:0
role:master
db0:keys=1341,expires=110
redis 127.0.0.1:6380> info
vm_enabled:0
role:slave
master_host:192.168.10.1
https://www.cnblogs.com/linjiqin/tag/redis/default.html