• redis集群


    redis集群 redis锁

    1.Redis集群是一个提供在多个redis节点间共熟数据的程序集。

    2.redis集群的数据分片
    (1)Redis没有使用一致性hash而是引入hash槽的概念。
    (2)Redis集群共有16384个hash槽(不管redis有几台机器,整个集群一共有16384个hash槽)。每个key经过CRC16校验后,对16384取余来决定放到哪个hash槽。
    (3)比如一个集群有A、B、C、3台机器,那么
    节点A,包括0到5500号hash槽
    节点B,包含 5501到11000hash槽
    节点C,包含11001到16384号hash槽

    3.slot存储
    (1)Bit位存储
    (2)1个slot

    3.redis集群的优势
    (1)集群通过分区,提供一定程度的可用性
    (2)自动把数据路由到不同的结点上
    (3)整个集群的部分节点不可用或不可达时,其余节点可继续处理

    4.redis的主从复制模型
    (1)每个主节点都有 n+1个slave,为了保证在master不可用时,能够快速把slave切换成master
    (2)主从的数据复制,采用的是异步复制,
    I.客户端写请求
    II.master写入,告诉客户端写成功了
    III.数据从master复制到Slave
    所以说redis集群的一致性只是弱一致性

    5.重新分片,使用reshard命令可以增加节点,重新分槽
    ./redis-trib.rb reshard 127.0.0.1:7000

    6.reids集群与CPA理论
    (1)CAP,一致性,原子性,分区容错性,三者不可兼得,只有取其中的一种,最多两种,
    (2)redis从单机变成集群后,由一致性、原子性(CA)变成了一致性,分区容错性(CP)


    7.redis锁
    SETNX set if not exist

  • 相关阅读:
    java的访问控制修饰符
    js将一个数组分割成二维子数组
    java的数组
    Java 变量类型
    java
    java的 %和 ^
    Python第三方库 -> 由于是ipynb格式,所以没有对应的输出结果
    获取浏览器历史记录 browserhistory
    虚拟机 CentOS 6.8 安装
    解决 django.db.utils.OperationalError: (1051, "Unknown table 'mydorm.users_studen t'")
  • 原文地址:https://www.cnblogs.com/fubaizhaizhuren/p/7545062.html
Copyright © 2020-2023  润新知