• Redis Cluster集群


     Redis集群是Redis提供的分布式数据库方案,集群通过分片(sharding)来进行数据共享,并提供复制故障转移功能。

    节点通过握手将其它节点添加到自己所在的集群。

    集群中的16384个槽可以分别指派给集群中的各个节点,每个节点都会记录哪些槽指派给了具体哪个节点。

    节点在收到客户端命令请求时,会先检查这个命令请求处理的键所在的槽是否由自己负责,如果不是的话,节点将向客户端返回一个moved错误,moved错误携带的信息可以指引客户端转向正在负责相关槽的节点。

    对Redis集群重新分片工作是由redis-trib负责执行的,重新分片的关键时将属于某个槽的所有键值对从一个节点转移到另一个节点。

    如果节点A正在迁移槽i至节点B,那么当节点A没能在自己的数据库中找到命令指定的数据库键时,节点A会向客户端返回一个ASK错误,指引客户端到节点B继续查找指定的数据库键。

    集群里的从节点用于复制主节点,不处理命令请求,并在主节点下线时,通过故障转移操作后,升级为新的主节点处理命令请求。

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

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

    不支持多数据空间。单机下的Redis可以支持16个数据库,集群模式下只能使用一个数据库空间,即db0.

    复制结构值支持一层,从节点只能复制主节点,不支持嵌套复制结构

    Key批量操作支持有限。如mset、mget,目前只支持具有相同slot值的key执行批量操作

    key事务操作支持有限。同理只支持多key在统一节点上的事务操作,当多个key分布在不同的节点上时无法使用事务功能

  • 相关阅读:
    悟透JavaScript(理解js面向对象)(转)
    spark相关问题
    hive常见问题以及解析
    visual studio code添加leetcode插件
    阿里云oss的使用
    Poi工具类快速生成Ecxel(升级版)
    linux实现增量拷贝数据,代替scp
    nginx实现均衡负载
    idea 程序包不存在 解决办法
    通过word文件模板生成word文件
  • 原文地址:https://www.cnblogs.com/jasonbourne3/p/14099778.html
Copyright © 2020-2023  润新知