主从复制(读写分离):
读在从库读,写在主库写。

主从复制的好处:
避免redis单点故障
构建读写分离架构,满足读多写少的需求。

主从架构:

操作(启动实例,在一台机器上启动不同的实例,进行伪主从复制):
1.复制配置文件,修改配置文件,启动6379,6380,6381三个实例;

2.设置主从
在redis中设置主从有两种方式:
(1)在redis.conf中设置slaveof(永久)
(2)使用redis客户端连接到服务,执行salveod命令(临时)

3.查看主从信息,使用 INFO replication 命令。

4.测试
在主库写数据:

在从库读数据:

主从从架构:


操作与主从架构类似,不再写出。

从库只读:
默认情况下redis充当slave角色的只能读不能写。

可以在配置文件中开启非只读:slave-read-only no

主从复制的原理:
当从库与主库建立主从关系后,会像主库发送sync命令;
主库接收到sync命令后会在后台开始保存快照(rdb过程),并将期间接收到的写命令缓存起来;
当快照完成后,主redis会将快照文件和缓存的写命令一起发送给从redis;
从redis接收到后,会载入快照和执行收到的缓存的写命令;
之后,每当主redis接收到写命令后都会发送给从redis,从而保证数据的一致。

无磁盘复制:
如果主库所在的服务器的磁盘io能力较差的话,那么主从复制就会遇到瓶颈。的redis2.8.18版本后引入了无磁盘复制。
原理:
redis在与从库进行复制初始化的时候不再将快照保存在磁盘,而是通过网络直接发送给从库,从而避免了io性能差的问题。
开启无磁盘复制:repl-diskless-sync yes

主从架构出现宕机怎么办?
如果在主从复制架构中遇到宕机的话,一般要分情况:
1.从redis宕机
这种情况相对来说比较简单,只需将从redis重启,重启后从redis会自动加入到主从架构中,完成数据的同步。而且从redis2.8开始还实现了主从断线后恢复的情况下实现增量更新的功能。
2.主redis宕机
需要完成两步,第一步是在从redis中执行SLAVEOF NO ONE 命令,断开主从关系并且提升为主库继续提供服务;第二步是将主库重新启动,执行SLAVEOF命令,将其设置为其他库的从库,这时数据就会更新回来。这个过程一般使用哨兵来监听。

最新文章

  1. Android popupwindow使用心得(一)
  2. SQL Server通过File Header Page来进行Crash Recovery
  3. Asp.net MVC 的八个扩展点
  4. I2C总线和S5PV210的I2C总线控制器
  5. React Native 开发之 (05) flexbox布局
  6. 深入JVM-垃圾回收概念与算法
  7. redis监控状态
  8. iOS7 下去掉状态栏(全屏)
  9. iOS系统控件显示中文
  10. 前端性能优化工具--DOM Monster
  11. 省市县 三级 四级联动Javascript JQ 插件PCASClass.js
  12. Struts2 Annotation 默认返回Tiles2布局
  13. IOI 2009:Mecho
  14. android小知识之自定义通知(toast)
  15. JS响应数据
  16. Java生成名片式的二维码源码分享
  17. IP通信基础课堂笔记----第三章(自认为的重点)
  18. Linux基础(一)系统api与库函数的关系
  19. caffe出错:Unknown bottom blob 'data' (layer 'conv1', bottom index 0)
  20. c# 集合中有数字、字符的Orderby排序

热门文章

  1. SpringBoot之整合Quartz调度框架-基于Spring Boot2.0.2版本
  2. Spring学习之Spring与Mybatis的两种整合方式
  3. PHP jdtojulian() 函数
  4. PHP xml_set_notation_decl_handler() 函数
  5. 5.21 省选模拟赛 luogu P4297 [NOI2006]网络收费 树形dp
  6. 从别人的代码中学习golang系列--03
  7. SparkSQL & Spark on Hive & Hive on Spark
  8. mysqld_multi多实例部署
  9. LeetCode 87,远看是字符串其实是搜索,你能做出来吗?
  10. 嵌入式Linux串口编程简介