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) 验证新的主从架构状态

    在6382上查看主从信息

    

 

  (6) 验证新的主从架构是否可以正常写入数据,同步数据

  如果可以,说明主从正常

  

  

 

  如果想永久生效必须:去修改配置文件

posted @   阿布_alone  阅读(256)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
TOP
点击右上角即可分享
微信分享提示