一.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) 验证新的主从架构是否可以正常写入数据,同步数据

  如果可以,说明主从正常

  

  

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

最新文章

  1. 迷之this?(转)
  2. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数·简明中文手册 总览
  3. C++模板元编程 - 函数重载决议选择工具(不知道起什么好名)完成
  4. session过期时ajax请求刷新浏览器
  5. python入门总结-函数
  6. ios专题 - 多线程非GCD(1)
  7. 巧用Session Manager还原Firefox丢失会话
  8. Android:Notification的生成与取消
  9. 中文颜色名称与RGB颜色对照表
  10. bzoj usaco 金组水题题解(1)
  11. android studio编译慢的问题
  12. 对SVN的落地与实践总结
  13. 轻量级数据库Sqlite的使用
  14. eclipse运行无错的ssm项目,迁移到idea出错
  15. JS基础题
  16. [php] php - json_encode 函数
  17. tomcat启动报错:Injection of autowired dependencies failed
  18. MVC ---- ckeditor 循环遍历并绑定blur事件
  19. web.xml context-param配置
  20. [NOIP2017]逛公园 最短路图 拓扑序DP

热门文章

  1. HBase环境搭建随记
  2. LWIP带UCOS操作系统移植
  3. bt协议详解 基础篇(下)
  4. Python基于VS2013 开发环境搭建 Hello World 10分钟搞定
  5. UVa 12099 The Bookcase (DP)
  6. CodeForces 474A Keyboard (水题)
  7. CodeForces 682C Alyona and the Tree (树上DFS)
  8. Mac下默认JDK路径
  9. 再次学习linux文件特殊权限:SUID、SGID、Sticy Bit
  10. MongoDB整理笔记のjava MongoDB分页优化