最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • redis集群原理

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

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

    redis集群原理

    尤其是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 负责维护nodeslotvalue

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

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » redis集群原理
    • 20会员总数(位)
    • 16174资源总数(个)
    • 1100本周发布(个)
    • 3 今日发布(个)
    • 115稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情