redis的主从同步
一.redis的主从操作流程
1. 准备三个redis配置文件
#进入redis的配置文件夹,准备好这几个文件,6379不用管,默认的,和这次操作无关 [root@qishi ~]# cd /etc/redis/ [root@qishi redis]# ll total 80 -rw-r--r--. 1 root root 57774 Apr 20 15:31 6379.conf -rw-r--r--. 1 root root 183 Apr 20 16:32 6380.conf #主数据库master -rw-r--r--. 1 root root 206 Apr 20 16:36 6381.conf #从数据库slave -rw-r--r--. 1 root root 206 Apr 20 16:36 6382.conf #从数据slave
2.写入以下配置
#注意,一下内容指定的路径一定要有,就是说要自己先创建好,否则可能报错
port 6380 daemonize yes pidfile /etc/redis/data/6380/redis.pid loglevel notice logfile "/etc/redis/data/6380/redis.log" dbfilename dump.rdb dir /etc/redis/data/6380 protected-mode no
3.目前这三个配置文件配置一样,我们只需修改端口,让他们的端口不用即可(路径也不一样)
#需要在配置所在的文件夹中操作,同理其他两个配置文件指定路径也要创建好 #可以使用这一条命令通过6380.conf生成6381和6382的配置文件 sed "s/6380/6381/g" 6380.conf > 6381.conf sed "s/6380/6382/g" 6380.conf > 6382.conf
4. 在6381和6382下添加以下配置,使之成为从数据库
slaveof 127.0.0.1 6380 #可以使用以下一行命令直接追加写入到两个从库的配置文件中 echo "slaveof 127.0.0.1 6380" >>6381.conf echo "slaveof 127.0.0.1 6380" >>6382.conf
5. 确认三个配置文件无误
6. 开启这三个redis服务,确保三个服务启动正常
[root@qishi redis]# redis-server /etc/redis/6380.conf [root@qishi redis]# redis-server /etc/redis/6381.conf [root@qishi redis]# redis-server /etc/redis/6382.conf
7. 查看redis主从数据库的状态
redis-cli -p 6380 info replication redis-cli -p 6381 info replication redis-cli -p 6382 info replication
8. 验证redis主从复制情况
(1)先验证三个数据库是否能正常连接
redis-cli -p 6380 redis-cli -p 6381 redis-cli -p 6382
( 2 ) 在6380上面写入数据,查看6381和6382是否能够正常同步
(3)在从数据库写入数据
9. 手动进行主从复制故障切换
(1) 杀掉6380的进程,模拟主库故障
kill -9 进程ID
(2)在6381和6382上手动指定一个主库(我现在指定6382为主库)
( 3 ) 在6382的redis上执行这一行命令
slaveof no one #去除从库身份
(4) 在6381上执行以下命令,将原来的指向6380改为指向6382
原来的配置指向:
#去除原来的从库身份并且重新指定主库,要确保要指定的主库已经执行了slaveof no one slaveof no one slaveof 127.0.0.1 6382
(5) 验证新的主从架构状态
(6) 验证新的主从架构是否可以正常写入数据,同步数据
如果可以,说明主从正常
如果想永久生效必须:去修改配置文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器