Redis集群

本文介绍了Redis集群的搭建过程,强调了其无中心、哈希槽和节点间ping-pang机制等特点,以及如何在Java中使用JedisCluster连接Redis集群。通过集群,实现了数据的分散存储和高可用性,允许动态添加或移除节点,确保系统稳定性。
摘要由CSDN通过智能技术生成

引言:

主从架构解决了:redis读写效率问题

哨兵解决了:单点故障问题,当master宕机之后,我们的哨兵会重新推选出一位新的master

现有的问题:我们的master节点可以读和写数据,而我们的从节点只能读取数据,从节点的数据都是从master节点同步过来的。一个项目大量的增删改,我们的master节点可能无法解决当前问题。

Redis的集群

Redis集群在保证主从加哨兵的基本功能之外,还能够通过集群的哈希槽提升Redis存储数据的能力。

特点:

  1. Redis集群是无中心的。
  2. Redis集群有一个ping-pang机制。
  3. 投票机制,Redis集群节点的数量必须是2n+1。
  4. Resis集群中默认分配了16384个hash槽,在存储数据时,就会将key进行crc16的算法,并且对16384取余,根据最终的结果,将key-value存放到执行Redis节点中,而且每一个Redis集群都在维护着相应的hash槽。
  5. 为了保证数据的安全性,每一个集群的节点,至少跟着一个从节点。
  6. 单独的针对Redis集群中的某一个节点搭建主从。
  7. 当Redis集群中,超过半数的节点宕机之后,Redis集群就瘫痪了。

哈希槽:你可以理解成表,使用单节点时的redis时只有一个表,所有的key都放在这个表里;改用Redis Cluster以后会自动为你生成16384个表,你insert数据时会根据算法来决定你的key应该存在哪个表,每个表里有很多数据

使用哈希槽的好处就在于可以方便的添加或移除节点。

当需要增加节点时,只需要把其他节点的某些哈希槽挪到新节点就可以了;

当需要移除节点时,只需要把移除节点上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值