redis3.0.0主从搭建配置及手动主从切换
环境描述:
主redis:10.249.2.133 6379
从redis:10.249.2.134 6380
一、主从配置
1、共同配置
vi redis.conf
daemonize yes no改为 yes
2、从redis修改端口号
vi redis.conf
port 6380 6379修改为6380
3、启动redis服务
主redis:
[root@wolf redis]#./src/redis-server redis.conf
从redis:
[root@wolf redis]#./src/redis-server redis.conf
4、测试数据同步
主redis:
[root@wolf redis]#./src/redis-cli -p 6379
127.0.0.1:6379> set name wolf
OK
127.0.0.1:6379> get name
“wolf”
127.0.0.1:6379>
从redis:
[root@wolf redis]#./src/redis-cli -p 6380
127.0.0.1:6380> get name
“wolf”
127.0.0.1:6380>
5、默认是读写分离的
在从redis:
[root@wolf redis]#./src/redis-cli -p 6380
127.0.0.1:6380> set name wolf
(error) READONLY You can’t write against a read only slave.
二、主从切换
1、停止主redis
[root@wolf redis]# ./src/redis-cli -p 6379 shutdown
[root@wolf redis]# ps -ef | grep redis
root 16256 16130 0 15:51 pts/1 00:00:00 grep redis
[root@wolf redis]# ./src/redis-cli -p 6379
Could not connect to Redis at 127.0.0.1 Connection refused
2、将从redis设置为主redis
[root@wolf redis]# ./src/redis-cli -p 6380 slaveof NO ONE
OK
[root@wolf redis]# ./src/redis-cli -p 6380
127.0.0.1:6380> get name
“abc”
3、测试写入
127.0.0.1:6380> set name laolang
OK
127.0.0.1:6380> get name
“laolang”
4、主修复后,切回主
先将当前主保存
[root@wolf redis]# ./src/redis-cli -p 6380
127.0.0.1:6380> get name
“laolang”
127.0.0.1:6380> save
OK
127.0.0.1:6380> get name
“laolang”
将redis目录下的dump.rdb copy到redis原主
[root@wolf redis]# scp dump.rdb 10.249.2.133:/usr/local/redis/
root@10.249.2.133’s password:
dump.rdb 100% 34 0.0KB/s 00:00
启动主redis(10.249.2.133)
[root@wolf redis]# ./src/redis-server redis.conf
[root@wolf redis]# ps -ef | grep redis
root 16315 1 0 16:09 ? 00:00:00 ./src/redis-server *:6379
root 16319 16130 0 16:09 pts/1 00:00:00 grep redis
切换回去(10.249.2.134—-10.249.2.133)
10.249.2.134上执行
[root@wolf redis]# ./src/redis-cli -p 6380 slaveof 10.249.2.133 6379
OK
10.249.2.133上执行
[root@wolf redis]# ./src/redis-cli -p 6379
127.0.0.1:6379> get name
“laolang”
127.0.0.1:6379> set name wolf
OK
127.0.0.1:6379> get name
“wolf
10.249.2.134上执行
[root@wolf redis]# ./src/redis-cli -p 6380
127.0.0.1:6380> get name
“wolf”
127.0.0.1:6380> set name 123
(error) READONLY You can’t write against a read only slave.
还没有评论,来说两句吧...