• Redis分片技术(Redis Cluster)


     

    1. redis Cluster介绍

    (1) Redis-Cluster是一种服务器Sharding技术,Redis3.0以后版本正式提供支持

    (2) 特点:

    ① Redis_cluster没有使用一致性hash,而是引入了hash槽的概念。Redis_Cluster中有16384(214次方)hash槽,每个key通过CRC16校验后对16383取模来决定放置哪个槽。Cluster中的每一个节点负责一部分hash

    ② 实例

    1) 比如集群中存在三个节点,则可能存在的一种分配如下

    1. 节点A包含0-5500号哈希槽
    2. 节点B包含5501-11000号哈希槽
    3. 节点C包含11001-16384号哈希槽
    4. 其他方案

    (1) Redis Sentinel集群+Keepalived/Haproxy

    ① 底层是Redis Sentinel集群,代理着Redis主从,web端通过VIP提供服务。当主节点发生故障,比如机器故障、Redis节点故障或者网络不可达,Redis之间的切换通过Redis Sentinel内部保障机制,VIP切换通过keepalived保障

    ② 优点

    1) 秒级切换

    2) 对应用透明

    ③ 缺点

    1) 维护成本高

    2) 存在脑裂

    3) Sentinel模式存在短时间服务不可用

    (2) Twemproxt

    ① 多个同构Twemproxy(配置相同)同时工作,根据hash算法,转发给对用的Redis

    ② 优点

    1) 开发简单,对应用几乎透明

    2) 历史悠久,方案成熟

    ③ 缺点

    1) 代理影响性能

    2) LVSTwemproxy会有节点性能瓶颈

    3) Redis扩容非常麻烦

    (3) Codis

    ① Codi是由豌豆荚开源的产品,涉及众多组件,其中Zookeeper存放路由表和代理节点元数据、分发Codis-config的命令;Codis-config是集成管理工具,有web界面提供使用;Codis-Proxy是一个兼容Redis协议的无状态代理;Codis-Redis基于Redis2.8版本二次开发,加入了slot支持,方便迁移数据

  • 相关阅读:
    添加自动生成备注模板
    eclipse安装go插件
    CentOS7使用minikube搭建kubernetes集群
    CentOS7 设置控制台分辨率
    CentOs7安装源设置
    Java线程死锁
    keycloak +docker-compose+mysql 启动配置
    Illegal key size or default parameters
    Springboot+Spring secuirty 前后端分离后台菜单权限设计
    Springboot +vue 实现导出功能
  • 原文地址:https://www.cnblogs.com/juddy/p/14817462.html
Copyright © 2020-2023  润新知