redis集群原理是什么

54次阅读
没有评论

共计 1169 个字符,预计需要花费 3 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章主要介绍 redis 集群原理是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

redis 是一种典型的 no-sql 即非关系数据库 像 python 的字典一样 存储 key-value 键值对 工作在 memory 中

所以很适合用来充当整个互联网架构中各级之间的 cache 比如 lvs 的 4 层转发层 nginx 的 7 层代理层

尤其是 lnmp 架构应用层如 php-fpm 或者是 Tomcat 到 mysql 之间 做一个 cache 以减轻 db 的压力

因为有相当一部分的数据 只是简单的 key-value 对应关系,而且在实际的业务中常常在短时间内迅速变动

如果用关系数据库 mysql 之类存储 会大大增加对 db 的访问 导致 db 的负担很重 因为所有的 require 中的大部分最后都要汇聚到 db

所以如果想要业务稳定 那么解决 db 的压力 就是关键 所以现在大部分的解决方案就是在 db 层之上的各级使用多级的 no-sql

像 memcache redis 等 来为 db 提供缓冲

Redis 集群

Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施 installation。

Redis 集群不支持那些需要同时处理多个键的 Redis 命令,因为执行这些命令需要在多个 Redis 节点之间移动数据,并且在高负载的情况下,这些命令将降低 Redis 集群的性能,并导致不可预测的行为。

Redis 集群通过分区 partition 来提供一定程度的可用性 availability:即使集群中有一部分节点失效或者无法进行通讯,集群也可以继续处理命令请求。

Redis 集群提供了以下两个好处:

将数据自动切分 split 到多个节点的能力。

当集群中的一部分节点失效或者无法进行通讯时,仍然可以继续处理命令请求的能力。

集群原理

所有的 redis 节点彼此互联 (PING-PONG 机制), 内部使用二进制协议优化传输速度和带宽。

节点的 fail 是通过集群中超过半数的节点检测失效时才生效。

客户端与 redis 节点直连, 不需要中间 proxy 层. 客户端不需要连接集群所有节点, 连接集群中任何一个可用节点即可。

redis-cluster 把所有的物理节点映射到 [0-16383]slot 上,cluster 负责维护 node – slot – value

Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点

以上是 redis 集群原理是什么的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计1169字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)