zoukankan      html  css  js  c++  java
  • 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支持,方便迁移数据

  • 相关阅读:
    【项目】 技术选型 平台和语言
    WCF 常见逻辑和代码 1.错误处理和配置
    一个挺有意思的Javascript小问题
    【设计原则和建议】 方法返回值
    一次HTTP请求中的缓存
    【设计原则和建议】 方法
    【设计原则和建议】 字段
    Express全系列教程之(一):Express的安装 和第一个程序
    js switch语句祥解[范围判断]
    修改notepad++ zencodeing 插件的配置路径
  • 原文地址:https://www.cnblogs.com/juddy/p/14817462.html
Copyright © 2011-2022 走看看