主从复制
主从复制原理
Redis集群中有很多Redis服务器,这些Reids服务器分为主服务器和从服务器。

  1. 从服务器会向主服务器发送命令:SYNC命令。
  2. 主服务器接收到SYNC命令后,开始执行GBSAVE命令生成RDB文件(快照文件)并使用缓冲区来记录此后的写命令
  3. 主服务器GBSAVE命令执行完毕后,会将次快照发送给所有的从服务器。而且在发送期间会继续记录写命令。
  4. 从服务器接收到主服务器发送过来快照文件,会加载这个快照文件,并执行。
  5. 主服务在发送完快照文件后会向从服务器发送缓冲区命令。
  6. 从服务器完成对快照文件的载入,也会开始接收主服务器的命令,并执行。
  7. 从服务器和主服务器执行相同的命令

通过这种方式完成主从复制。
优点:
保证主服务器和从服务器数据同步,实现读写分离,主服务器用来执行写命令,而从服务器用来提供数据(读)。

缺点:
Redis不具备自动容错和恢复功能,主从机器的宕机都会导致前段部分读写请求失败,导致数据部分丢失。

  • 哨兵模式

当主服务器宕机了,哨兵模式可以让一个从服务器升级为主服务器,以便保证继续提供服务。
优点:
提高Redis的高可用,让系统更健壮,可用性更高。
缺点:
Redis很难支持在线扩容。如果集群容量达到上线,这时扩容就会变得很复杂。

Redis-Cluster集群
主从复制有一个很大的缺陷:主服务器和从服务器存储的数据一样,这是一种浪费。
redis3.0后提供Redis-Cluster集群,这是一种分布式存储的集群方式:每一个Reids服务器上存储不同的数据,提高高可用。
Redis在去保存数据时,会通过一个算法计算key的结果,通过这个结果和插槽(16834)(Hash槽:0-16383)做运算,将运算结果作为这个数据
的存储位置,这样就可以将数据保存到不同的服务器上,保证分布式存储。

最新文章

  1. [原创]关于Hibernate中的级联操作以及懒加载
  2. hosts manager——hosts配置管理工具
  3. CentOS7使用阿里云镜像安装Mongodb
  4. iOS - 装饰对象
  5. 用一个案列详细讲解UITextFiled
  6. C#代理那点事儿
  7. 深入浅出之Smarty模板引擎工作机制(二)
  8. 分享一个java线程专栏
  9. Poco之ftp目录切换与创建
  10. 从robots.txt開始网页爬虫之旅
  11. 几种交换两个数函数(swap函数)的写法和解析
  12. idea 15破解方法记录
  13. akka tips
  14. Injection of autowired dependencies failed
  15. SYBASE bcp用法及例子
  16. 6个常见的php安全攻击
  17. Eclipse Ctrl+Space 无法工作的问题
  18. docker 容器和镜像理解
  19. C#Lambda表达式详解
  20. 树莓派发射FM波——搭建私人小电台

热门文章

  1. 基于 geojson数据类型面转线Transforms Polygons and MultiPolygons to LineStrings.
  2. 10,java双向链表基础代码复现
  3. gitee 操作
  4. unittest框架-测试报告模板【BeautifulReport】安装、配置使用、生成带截图的测试报告
  5. sxt_(008_011)_servlet
  6. 2023-03-01 react-native 实现 复制功能 @react-native-community/clipboard 报错:TypeError: null is not an object (evaluating 'NativeClipboard_1.default.setString')。
  7. 25_Webapck原理
  8. vue教程
  9. Python后端基础知识总结
  10. Elasticsearch Java client使用