1.redis的三种集群方式

1.主从模式

2.redis哨兵(Sentinel)模式

3.Cluster模式

2.redis的具体实现方式

1.主从模式
① 在主从模式中,数据库分为两类:主数据库master和从数据库slave,其中有且仅有一个主节点,从节点可以有多个

   只要网络正常,主节点会一直将自己的数据更新同步到从节点,保持主从同步
   当从节点启动后,主动向主节点发送sync命令,主节点接收到sync命令后再后台保存快照(rdb持久化)和缓存保存快照这段时间的命令,然后将保存的快照文件和缓存的命令发送给从节点.从节点接收到快照文件和命令后加载快照文件和缓存的执行命令.复制初始化后,主节点每次接收的写命令都会同步发送给主节点,保证主从数据一致性.
② 特点
(1) 主节点可读可写
(2) 从节点只读
③ 基本实现
   当从库和主库建立MS关系后,会向主数据库发送sync命令
   主库接收到sync命令后会开始在后台保存(RDB持久化过程),并将期间接受的写命令缓存起来
   当快照完成后,主redis会将快照文件和所有缓存的写命令发送给redis,从redis接收到后会载入   快照文件并且执行收到的缓存的命令之后,主redis每当接受到写命令时就会将命令发送从Redis,从而保持数据的一致性

2.哨兵模式

   主从模式的弊端就是不具备高可用性,当主节点挂掉后,redis将不能在对外提供写入操作,因此Sentinel应运而生
redis的sentinel系统用于管理多个redis服务器,主要执行以下三个任务:
① 监控 :Sentinel会不断的检查你的主服务器和从服务器是否运作正常
(1) Sentinel可以监控任意多个主节点和该主节点下的从节点
(2) 同一个哨兵下的,不同主从模型,彼此之间相互独立
(3) Sentinel会不断检查主节点和从节点是否正常工作
② 提醒 : 当被监控的某个redis服务器出现问题,Sentinel可以通过API向管理员或者其他应用程序发送通知
③ 自动故障迁移: 当一个主服务器不能正常工作时,Sentinel会开始一次自动故障迁移操作,它会进行组装选举,将其中一个从服务器升级为新的主服务器,并让失效的主服务器的其他服务器改为复制新的主服务器;当客户端视图连接失效的主服务器时,集群也会想客户端返回新主服务器的地址,使得集群可以使用新主服务器代替失效服务器.
3.redis集群模式
由于Redis主从复制架构每个数据库都要保存整个集群中的所有数据,容易形成木桶效应,为了最大化利用内存,可以采用集群,就是分布式存储,即每台redis存储不同的内容
Cluster环境搭建:修改redis.conf
修改pidfile指向路径 pidfile /opt/redis/6379/redis_6379.pid
开启允许集群 cluster-enabled yes
修改集群配置文件指向路径 cluster-config-file nodes-6379.conf
分别启动redis服务,查看redis状态,发现虽然已经是以集群方式启动了,但是redis之间关系还没确定下来
安装ruby环境: yum -y install zlib ruby rubygems
安装集群工具: gem install redis
执行命令: redis-trib.rb create --replicas 1 主ip:主端口 主ip:主端口 主ip:主端口 从ip:从端口 从ip:从端口 从ip:从端口
新增集群节点:
先启动需要增加的节点服务
执行以下命令,将这个新节点添加到集群中:redis-trib.rb add-node 主ip:主端口
增加了新的节点之后,这个新的节点可以成为主节点或者是从节点
变成从节点:redis-cli -c -p 7006 cluster replicate 某个主节点ID
变成主节点:redis-trib.rb reshard ip:端口,然后分配哈希槽
删除集群节点:
将这个节点上的所有插槽转移到其他节点上,执行命令:redis-trib.rb reshard 主ip:主端口
然后系统提示我们输入要接收这些哈希槽的节点的ID,这里选择一个或多个主节点ID

redis集群模式是怎么实现的?相关推荐

  1. 深入剖析Redis系列(三) - Redis集群模式搭建与原理详解

    前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...

  2. Redis:Redis集群模式(Cluster)原理

    1.前言 由于Redis主从复制模式和Redis哨兵模式采用的都是复制Master节点的数据,实现读写分离.但是这种设计存在一个严重的问题,它没有真正意义上实现数据分片.两个模式都有一个问题,不能水平 ...

  3. Redis数据库(四)——Redis集群模式(主从复制、哨兵、Cluster)

    Redis数据库(四)--Redis集群模式(主从复制.哨兵.Cluster) 一.Redis主从复制 1.主从复制流程 二.哨兵模式 1.哨兵模式集群架构 2.哨兵模式主要功能 3.哨兵监控整个系统 ...

  4. redis集群模式详解

    redis集群模式详解 一,redis集群 1,哨兵集群 2,redis Cluster 二,redis Cluster集群的搭建 1,配置文件 2,redis服务启动 三,springboot连接r ...

  5. redis集群模式登陆

    总结 redis单机模式时,登陆redis的命令格式: ./redis-cli -h 地址 -p 端口 redis集群模式时,登陆redis的命令格式: ./redis-cli -h 地址 -p 端口 ...

  6. Redis集群模式源码分析

    目录 1 主从复制模式 2 Sentinel(哨兵)模式 3 Cluster模式 4.参考文档 1 主从复制模式 主库负责读写操作,从库负责数据同步,接受来自主库的同步命令.通过分析Redis的客户端 ...

  7. redis集群模式工作原理

    目录 1 redis集群模式背景 2 redis cluster介绍 2.1 节点间的内部通信机制 2.2 基本通信原理 2.2.1 gossip 协议 2.2.2 ping 消息深入 3 分布式寻址 ...

  8. 关于Redis集群模式下,使用mget通过keys批量获取value时的解决方案

    关于Redis集群模式下,使用mget通过keys批量获取value时的解决方案 今天在做项目的时候,需要使用到mget命令,通过一个批量的key去获取对应的value集合,但是取值的时候,报了这个错 ...

  9. redis db0 到 db15_深入剖析Redis系列: Redis集群模式搭建与原理详解

    前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...

最新文章

  1. idea mybatis generator插件_在idea中使用mybatis generator逆向工程生成代码
  2. JAVA常见算法题(十三)
  3. python中四种进制的输出_Python基础语法和进制
  4. java真的是值传递么?
  5. ejb 2.1 jboss_JBoss AS 8中的Java EE 7和EJB 3.2支持
  6. 教你用一条SQL搞定跨数据库查询难题
  7. 中国女性补体面膜市场趋势报告、技术动态创新及市场预测
  8. C++中有了malloc/free 为什么还要new/delete?
  9. python中函数的参数传递
  10. 【组播技术入门 01】IP组播概述
  11. (2)I/O流对象-----FilterInputStream与FilterOutputStream
  12. ESP-8266wifi模块获取网络实时时间
  13. PHP zip 文件压缩、解压
  14. 个人永久性免费-Excel催化剂功能第69波-专业图表库新增图表-刘万祥老师中国地图...
  15. windows PE文件结构及其加载机制
  16. Windows 安装字体后,程序仍然提示找不到字体的解决办法——为所有用户安装字体
  17. epub格式的电子书
  18. Redis详情教学加源码,欢迎大家来下载
  19. ❤️数据可视化❤️:基于Echarts + GeoJson实现的地图视觉映射散点(气泡)组件【10】 - 黑龙江省
  20. 手机高速访问an web方法

热门文章

  1. 【读书笔记】20210812《海底捞你学不会》——黄铁鹰
  2. Java使用ftl模板文件生成Word,以及Word转换图片或Pdf工具类
  3. WEB HTML知识整理 css
  4. 速排小蚂蚁编辑器详细使用教程
  5. hao123是HTML还是PHP,PHP网址目录大全网址导航源码 支持默认/hao123/2345/114la四种风格...
  6. 解决无线网卡打不开的问题(by quqi99)
  7. 应用zigbee实现智能家居项目
  8. 家国梦自动收取金币、货物、升级建筑、拆相册等脚本
  9. Win8下如何安装Win7 or Win7下如何安装win8?
  10. 使用open live writer客户端写博客(亲测有效)