天天看點

java用戶端實作redis主從切換,redis主從配置及主從切換

環境描述:

主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