随笔 - 1357  文章 - 0  评论 - 1104  阅读 - 1941万

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
[root@localhost redis-2.8.3]# redis-cli -n 6379 shutdown
[root@localhost 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
[root@localhost redis-2.8.3]# redis-cli -p 6380 slaveof NO ONE
OK

3、测试从redis是否切换从主redis
[root@localhost 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

posted on   Ruthless  阅读(1558)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
历史上的今天:
2011-06-15 设置session失效的几种方法
2011-06-15 让html元素随浏览器的大小自适应垂直居中
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示