redis主从配置及主从切换 转

时间:2022-01-06 22:43:14

redis主从配置及主从切换 转自 http://blog.sina.com.cn/s/blog_67196ddc0101h8v0.html

(2014-04-28 17:48:47)

  分类: java

环境描述:

主redis:192.168.10.1 6379

从redis:192.168.10.2 6380

一、主从配置

1、将主从redis配置文件redis.conf中的aemonize no 改为 yes

2、修改从redis配置文件redis.conf中的port 6379 改为 6380,添加slaveof 192.168.10.1 6379

如果主redis有密码 masterauth password

3、启动主从服务

主redis:

[root@localhost redis-2.8.3]# src/redis-server /soft/redis-2.8.3-master/redis-2.8.3/redis.conf

从redis:

[root@localhost redis-2.8.3]# src/redis-server /soft/redis-2.8.3-slave/redis-2.8.3/redis.conf

4、测试数据同步

主redis:

[root@localhost redis-2.8.3]# src/redis-cli -p 6379

127.0.0.1:6379> set name abc

OK

127.0.0.1:6379> get name

"abc"

127.0.0.1:6379>

从redis:

[root@localhost redis-2.8.3]# src/redis-cli -p 6380

127.0.0.1:6380> get name

"abc"

127.0.0.1:6380>

5、默认是读写分离的

在从redis:

[root@localhost redis-2.8.3]# src/redis-cli -p 6380

127.0.0.1:6380> set name 123

(error) READONLY You can't write against a read only slave.

二、主从切换

1、停止主redis

[root@localhost redis-2.8.3]# src/redis-cli -n 6379 shutdown

[root@localhost redis-2.8.3]# src/redis-cli -p 6379

Could not connect to Redis at 127.0.0.1:6379: Connection refused

not connected>

2、将从redis设成主redis

[root@localhost redis-2.8.3]# src/redis-cli -p 6380 slaveof NO ONE

OK

3、测试从redis是否切换从主redis

[root@localhost redis-2.8.3]# src/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恢复正常了,要重新切换回去

1)将现在的主redis的数据进行保存

[root@localhost redis-2.8.3]# src/redis-cli -p 6380

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>

2)将现在的主redis根目录下dump.rdb文件拷贝覆盖到原来主redis的根目录

3)启动原来的主redis

[root@localhost redis-2.8.3]# src/redis-server /soft/redis-2.8.3-master/redis-2.8.3/redis.conf

4)在现在的主redis中切换

[root@localhost redis-2.8.3]# src/redis-cli -p 6380 slaveof 192.168.10.1 6379

OK