`

Redis 实践之集群方案

 
阅读更多

本文原创自 http://blog.csdn.net/voipmaker  转载注明出处。 

 

 

Redis集群的目的是实现数据的横向伸缩,把一块数据分片保存到多个机器,可以横向扩展数据库大小,扩展带宽,计算能力等。

 

实现数据分片(集群)方式大致有三种:

 

(1)     客户端实现数据分片

即客户端自己计算数据的key应该在哪个机器上存储和查找,此方法的好处是降低了服务器集群的复杂度,客户端实现数据分片时,服务器是独立的,服务器之前没有任何关联。多数redis客户端库实现了此功能,也叫sharding,这种方式的缺点是客户端需要实时知道当前集群节点的联系信息,

同时,当添加一个新的节点时,客户端要支持动态sharding.,多数客户端实现不支持此功能,需要重启redis。另一个弊端是redis的HA需要额外考虑。

 

(2)     服务器实现数据分片

其理论是,客户端随意与集群中的任何节点通信,服务器端负责计算某个key在哪个机器上,当客户端访问某台机器时,服务器计算对应的key应该存储在哪个机器,然后把结果返回给客户端,客户端再去对应的节点操作key,是一个重定向的过程,此方式是redis3.0正在实现,目前处于beta版本, Redis 3.0的集群同时支持HA功能,某个master节点挂了后,其slave会自动接管。

服务器端实现集群需要客户端语言实现服务器集群的协议,目前java,php,ruby客户端多数有redis-cluster客户端实现版本。

 

(3)     通过代理服务器实现数据分片

 

此方式是借助一个代理服务器实现数据分片,客户端直接与proxy联系,proxy计算集群节点信息,并把请求发送到对应的集群节点。降低了客户端的复杂度,需要proxy收集集群节点信息。Twemproxy是twitter开源的,实现这一功能的proxy.这个实现方式在客户端和服务器之间加了一个proxy,

但这是在redis 3.0稳定版本出来之前官方推荐的方式。结合redis-sentinel的HA方案,是个不错的组合。

 

分享到:
评论

相关推荐

    京东针对Redis Rehash机制的探索和实践.docx

    经过不断的迭代研发,目前已形成一整套自动化运维体系:涵盖一键运维集群、细粒度的监控、支持自动扩缩容以及热点Key监控等完整的解决方案。同时服务端通过Docker进行部署,最大程度的提高运维的灵活性。分布式缓存...

    高效运维最佳实践(03):Redis集群技术及Codis实践

    在这些非官方集群解决方案中,物理上把数据“分片”(sharding)存储在多个Redis实例,一般情况下,每一“片”是一个Redis实例。包括官方近期推出的RedisCluster,Redis集群有三种实现机制,分别介绍如下,希望对...

    大数据Redis系统视频教程

    讲解Redis单机环境环境、shell操作、Java API编程,以及持久化方案、主从复制架构、Sentinel架构、集群等知识点。 课程亮点 1,知识体系完备,从小白到大神各阶段读者均能学有所获。 2,生动形象,化繁为简,讲解...

    Java基于Redis分布式消息队的报文过滤系统的设计与实现

    内容概要:通过带着读者基于 Redis ...阅读建议:此资源以开发报文过滤系统学习其原理和内核,不仅是代码编写实现也更注重内容上的需求分析和方案设计,所以在学习的过程要结合这些内容一起来实践,并调试对应的代码。

    通过LVS+Keepalived搭建高可用的负载均衡集群系统

    通过LVS+Keepalived搭建高可用的负载均衡集群系统

    美团针对RedisRehash机制的探索和实践

    经过不断的迭代研发,目前已形成一整套自动化运维体系:涵盖一键运维集群、细粒度的监控、支持自动扩缩容以及热点Key监控等完整的解决方案。同时服务端通过Docker进行部署,最大程度的提高运维的灵活性。分布式缓存...

    Java思维导图xmind文件+导出图片

    MySQL高性能解决方案之分库分表 数据库中间件初始Mycat 基于Mycat实习MySQL数据库读写分离 基于Mycat实战之数据库切分策略剖析 Mycat全局表、Er表、分片预警分析 Nginx 基于OpenResty部署应用层Nginx以及...

    Redis大key多key拆分实现方法解析

    由于redis是单线程运行的,如果一次操作的value很大会对整个redis的响应时间造成负面影响,所以,业务上能拆则拆,下面举几个典型的分拆方案。 一、单个简单的key存储的value很大 i:该对象需要每次都整存整取 可以...

    Redis主从复制架构初步探索

    通过前面几篇的介绍中,我们都是在单机上使用Redis进行相关的实践操作,从本篇起,我们将初步探索一下Redis的集群,而集群中最经典的架构便是主从复制架构。那么,我们首先来了解一下神马是主从复制架构?随着网站...

    2012年数据库技术大会演讲PPT.zip

    唐福林—Redis大数据之路 刘成华—电信行业的NOSQL技术探索 邹润谋—开放云平台数据引擎CMEM 专场10:DB2应用实践专场—演讲嘉宾及主题 王飞鹏—Oracle与DB2那些事(二) - DB2 Purescale群集 周硕基—DB2 Overview ...

    阿里巴巴运维大会.rar

    新浪_杨海朝_redis运维之道 新浪_李晓栋_非商业网络设备的新浪应用之路 网易_王磊_网易海量数据存储平台的构建和运维 网易_李弈远_网易服务集成框架的构建与运维 腾讯_马志强_虚拟化环境下 网络 朋务器 平台的协作...

    over-server:架构相关:[进度20% ]记录分布式与微服务概念与实践,附Nginx、Mysql、Redis、Docker、K8S等常用服务端技术

    集群方案:10 台机器都部署该任务,若执行 1 个任务,只需要其中 1 台机器执行,时长 1 小时。若执行 10 个任务,每台执行 1 个,总耗费时间仍为 1 小时。分布式方案:将该任务拆分成 10 个子任务,每个子任务只需要...

    71分布式电商项目 - nginx高可用以及lvs+nginx负载均衡(资料)-附件资源

    71分布式电商项目 - nginx高可用以及lvs+nginx负载均衡(资料)-附件资源

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    │ Java面试题80:java访问redis级redis集群?.mp4 │ Java面试题81:微信公众号分类和微信开发原理.mp4 │ Java面试题82:怎么把微信和业务平台进行绑定.mp4 │ Java面试题83:项目的分类和项目参与者.mp4 │ Java...

    老男孩Mysql高级DBA 实战新浪首席DBA 老男孩教育杨海朝老师全程主讲 老男孩Mysql视频.txt

    │ MySQL培训(10)_MySQL高可用方案之LVS+keeplived+MM.docx │ MySQL培训(10)_MySQL高可用方案之MHA.docx │ MySQL培训(10)_MySQL高可用方案之MMM.docx │ MySQL培训(10)_MySQL高可用方案之PXC安装与配置....

    滴滴出行基于RocketMQ构建企业级消息队列服务的实践

    本文来自于网络,文介绍了滴滴出行为什么选择RocketMQ作为出行业务的消息队列解决方案以及如何构建自己的消息队列服务等。初期,公司内部没有专门的团队维护消息队列服务,所以消息队列使用方式较多,主要以Kafka为...

    开涛高可用高并发-亿级流量核心技术

    20.2.3 OpenResty+Redis集群+Mysql集群架构 386 20.3 实现 387 20.3.1 后台逻辑 388 20.3.2 前台逻辑 388 20.3.3 项目搭建 389 20.3.4 Redis+Twemproxy配置 389 20.3.5 Mysql+Atlas配置 390 20.3.6 Java+Tomcat安装 ...

    华为云智能物流解决方案.pdf

    物流1.0 物流2.0 物流3.0 物流4.0 机械化简单位移,粗放 式管理和经营阶段 集群化,企业间自建物流, 打造竞争力优势阶段 信息化,自动化,互 联网化发展阶段 智能化阶段 货物由人工分拣并发放各地,效率低下,耗 ...

Global site tag (gtag.js) - Google Analytics