zoukankan      html  css  js  c++  java
  • 讲解redis分布式数据存储的核心算法,数据分布的算法

    最老土的hash算法以及弊端

     一致性hash算法的讲解和优点

     一致性hash算法的虚拟节点实现负载均衡


    hash算法 -> 一致性hash算法(memcached) -> redis cluster,hash slot算法

    用不同的算法,就决定了在多个master节点的时候,数据如何分布到这些节点上去,解决这个问题

    1、redis cluster介绍

    redis cluster

    (1)自动将数据进行分片,每个master上放一部分数据
    (2)提供内置的高可用支持,部分master不可用时,还是可以继续工作的

    在redis cluster架构下,每个redis要放开两个端口号,比如一个是6379,另外一个就是加10000的端口号,比如16379

    16379端口号是用来进行节点间通信的,也就是cluster bus的东西,集群总线。cluster bus的通信,用来进行故障检测,配置更新,故障转移授权

    cluster bus用了另外一种二进制的协议,主要用于节点间进行高效的数据交换,占用更少的网络带宽和处理时间

    2、最老土的hash算法和弊端(大量缓存重建)

    3、一致性hash算法(自动缓存迁移)+虚拟节点(自动负载均衡)

    4、redis cluster的hash slot算法

    redis cluster有固定的16384个hash slot,对每个key计算CRC16值,然后对16384取模,可以获取key对应的hash slot

    redis cluster中每个master都会持有部分slot,比如有3个master,那么可能每个master持有5000多个hash slot

    hash slot让node的增加和移除很简单,增加一个master,就将其他master的hash slot移动部分过去,减少一个master,就将它的hash slot移动到其他master上去

    移动hash slot的成本是非常低的

    客户端的api,可以对指定的数据,让他们走同一个hash slot,通过hash tag来实现

    本文来自博客园,作者:三号小玩家,转载请注明原文链接:https://www.cnblogs.com/q1359720840/p/15757469.html

  • 相关阅读:
    2013国内IT行业薪资对照表【技术岗位】
    Eclipse查看子类
    whereis 查找命令全路径
    开张了
    Ruby1.8中单行字符串写在多行
    FEMTO是什么
    FUSE文件系统
    魔兽私服pvpgn搭建
    linux网络源码分析(1)
    freehosting申请空间和ssh D设置
  • 原文地址:https://www.cnblogs.com/q1359720840/p/15757469.html
Copyright © 2011-2022 走看看