redis分布式集群3种架构方案

redis分布式集群3种架构方案

集群方案:

1、 主从高可用(该方案就是单实例形式,只是为了保证数据的安全,对于用户数据少,业务的前期可以采用,目前我司缓存架构就是采用该方案)

2、 客户端分片(典型代表:Jedis。自主写分片算法,代码掌握在自己手中,可控性强,但是需要专业的开发运维人员维护,技术要求和维护成本高)

3、代理分片(典型代表:Twemproxy,redis集群没有正式推出之前官网推荐的方案,也是目前使用最多的)

4、 Redis cluster(3版本推出的集群方案,历时四年之多的开发)

5、 Codis集群(豌豆荚15年开源的解决方案,开源之前其已经用了2年之多,与其同期官网推出redis cluster)

6、 各大互联网公司自主研发的集群架构,但是还没有开源,可能也不会开源

  • codis架构
redis分布式集群3种架构方案

 

简单说明:

1、codis-proxy提供连接集群redis的服务入口

2、codis-config管理工具,支持包括添加/删除redis/proxy节点,发起数据迁移等操 作,自带一个dashboard工具,浏览器可以直观查看集群的运行状态

3、codis-server-group实现redis读写的水平扩展、高性能

4、codis-server实现redis实例服务,通过codis-ha实现服务的高可用

5、Zookeeper/etcd存放数据路由表和codis-proxy节点的元信息,codis-config发起的命令通过其同步到各个存活的codis-proxy,则zookeeper如果出问题则可能导致数据不一致的情况或者严重的会对外提供服务造成影响

  • Twemproxy
redis分布式集群3种架构方案

 

简单说明:

1、proxy提供分片算法和redis服务入口,支持高可用

2、Redis提供实现实例,并且通过sentinel支持高可用

3、Redis-Twemporxy提供通知底层HA切换至proxy

4、每个层结构出现问题或者变更节点信息等所有操作都需要重新规划分片算法,则需要重启服务

  • redis-cluster架构
redis分布式集群3种架构方案

 

简单说明:

1、redis cluster本身集群方案,客户端可以任一连接一个节点

2、redis-trib.rb脚本为集群的管理工具,比如自动添加节点,规划槽位,迁移数据等一系列操作(ruby语言)

3、每个节点都和N-1个节点通信,所以要维护好这个集群架构的每个节点信息,不然会导致整个集群不可工作

转载于:https://www.cnblogs.com/caicz/p/10797167.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100946.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 前缀和与差分数组(附练习题)

    前缀和与差分数组(附练习题)前缀和与差分数组前缀和前缀和对于a1,a2,a3,a4,a5,a6,…前缀和Si=a1+a2+a3+a4+…+ai,S0=0其中,[l,r]区间的前缀和为:Sr-S(l-1)非

    2022年5月18日
    44
  • tess4j linux so文件,linux上安装tess4j项目「建议收藏」

    tess4j linux so文件,linux上安装tess4j项目「建议收藏」本文主要介绍了linux上安装tess4j项目,通过具体的解释说明,让我们从中学到linux上安装tess4j项目的精髓所在,让我们对Linux内部原理越来越熟悉,希望大家能够在以后的学习中更加快速的弄明白其中的关键。便于更好的操作。linuxtesseract安装及部署tess4j项目会遇到一些的问题,总结如下:在windows上项目是可以正常运行的,部署到Linux上后,运行报异常,异常内…

    2022年6月9日
    38
  • JAVA——Tess4J简单的图像识别DEMO

    JAVA——Tess4J简单的图像识别DEMO基本概念TesseractOpenSourceOCREngine:包含一个OCR引擎-libtesseract和一个命令行程序-tesseract。Tesseract4添加了一个新的基于LSTM的OCR引擎,该引擎专注于行识别,但仍支持Tesseract3的传统TesseractOCR引擎,该引擎通过识别字符模式进行工作。通过使用传统OCR引擎模式(–oem0),可以与Tesseract3兼容。它还需要训练有素的数据文件来支持旧式引擎,例如tessdata存储库中的文件。…

    2022年6月5日
    82
  • pycharm 编码怎么设置_pycharm编码格式

    pycharm 编码怎么设置_pycharm编码格式Python中默认的编码格式是ASCII格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。有两种解决方法。一种是在python的编程工具Pycharm中设置默认编码pycharm下载地址:http://www.jetbrains.com/pycharm/选择社区版即可,免费。设置方法如下:入口A:工具栏-File-DefaultSettings-Editor-File…

    2022年8月27日
    6
  • 所谓抽象就是对同一类事物的相同特性的提取「建议收藏」

    所谓抽象就是对同一类事物的相同特性的提取「建议收藏」所谓抽象就是对同一类事物的相同特性的提取

    2022年4月24日
    39
  • java ORA-01008: 并非所有变量都已绑定避坑

    java ORA-01008: 并非所有变量都已绑定避坑//数据库增加数据的函数 publicbooleanadd(Creditc){ Stringsql=”insertintocredit(id,name,pwd,Money)” +”values(?,?,?,?)”; //要插入的对象中的数据拿到object数组中 Objecto[]={c.getId(),c.getName(),c.getPwd()…

    2025年9月25日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号