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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • scrapy安装教程_玻璃幕墙安装介绍

    scrapy安装教程_玻璃幕墙安装介绍在写之前我们先来了解一下什么是Scrapy?Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便Scrapy使用了Twisted[‘twɪstɪd](其主要对手是Tornado)异步网络框架来处理网络通讯,可以加快我们的下载速度,不…

    2022年9月18日
  • android onresume方法,Android onActivityResult()和onResume()的执行顺序

    android onresume方法,Android onActivityResult()和onResume()的执行顺序问题回顾:在Android8.0手机上不能直接安装Apk,需要权限申请,回调后执行onActivityResult()方法,并弹出对应的dialog,这时需要判断当前Activity是否处于resume状态,通过变量来控制,但结果是这个dialog并不会弹出。问题本质Activity跳转到系统应用后回调onActivityResult()先执行还是onResume()先执行?查看源码/***C…

    2022年5月29日
  • jdbc的增删改查_使用jdbc完成数据的增删改查

    jdbc的增删改查_使用jdbc完成数据的增删改查JBDC数据的持久化:把数据保存到磁盘上。JDBC是java访问数据库的基石,JDO,Hibernate,Mybatis等都是基于JDBCJDBC是一个独立于特定数据库的管理系统,通用的SQL数据库存取和操作的公共接口配置文件:jdbc.propertiesuser=rootpassword=abc123url=jdbc:mysql://localhost:3306/testdriverClass=com.mysql.jdbc.Driver获取Connectionpublic s

    2022年8月8日
  • python把数字转换为字符串_python中将列表转化为字符串

    python把数字转换为字符串_python中将列表转化为字符串要将数字转换为字符串的方法有三个;第一是使用str()函数直接转换,然后用加号来连接前后的字符串;二是使用字符串的格式说明符;三是使用字符串的格式化函数.format()。

    2022年10月12日
  • MQ消息队列详解、四大MQ的优缺点分析

    MQ消息队列详解、四大MQ的优缺点分析MQ消息队列详解近期有了想跳槽的打算,所以自己想巩固一下自己的技术,想了解一些面试比较容易加分的项,近期准备深入研究一下redis和mq这两样,这总体上都是为了解决服务器并发的原因,刚翻到了一篇有关于mq的,觉得写得特别好,特此记录一下,也算是为了加深自己的印象。首先从MQ容易面对的面试题切入一下为什么要使用MQ消息队列有什么优点和缺点kafka、ActiveMQ、RabbitMQ、R…

    2022年6月2日
  • c#窗体添加背景音乐_eclipse怎么添加背景音乐

    c#窗体添加背景音乐_eclipse怎么添加背景音乐一.在项目中新建一个文件夹,然后将音乐文件导入:二.添加音乐代码如下:usingSystem.Media;//在命名空间中添加stringegm=”../../music/3.wav”;//定义变量来存储音频路径SoundPlayerbgm=newSoundPlayer(egm);//控制声音播放bgm.Play();//开始播放音乐bgm.Stop();//停……

    2022年9月9日

发表回复

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

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