博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis集群搭建
阅读量:7199 次
发布时间:2019-06-29

本文共 1647 字,大约阅读时间需要 5 分钟。

  hot3.png

需要使用redis处理大量数据,单台机器,单个redis实例满足不了需求,需要使用redis集群。redis最新stable(2.8.19)版本,还不支持集群。看了一下其他的开源redis集群方案。

1.Twemproxy

twemproxy是Twitter开源的一个redis和memcache代理服务器。搭建完成后,使用redis-benchmark测试,发现性能减少了将近40%。

2.Codis

Codis是豌豆荚开源的redis集群方案,有优点,但是性能比twemproxy还低。

3.搭建redis集群

使用zookeeper监控redis节点,并更新保存redis各个节点的信息,实现一致性hash。架构如图所示。

131200_iyLN_916817.png

名词解释:

zk-client: 指使用zookeeper的API实现的程序。

zk-servers:指zookeeper servers集群。

zk-hash,是用tornado实现的web服务器,启动后,开启一个线程从zk-servers中获取redis各个节点的信息。GetKeyNode类进行一致性hash计算,根据get_node请求根据传来的key,计算出对应的redis节点。zk-hash也是一个zk-client,可以连接到zk-servers中任意个zk-server,获得相同的redis节点的信息,因此可以开启多个zk-hash,减少单个zk-hash服务的压力。

zk-redis,是zk-client,监控各个redis节点,向zk-servers注册各个redis节点的信息。修改settings.py里的redis_nodes,可以热更新需要监控的redis节点。

zk-hash 和 zk-client的源码:

关于ZooKeeper Servers,其大概介绍:

ZooKeeper

Ahighlyavailable, scalable, distributed, configuration, consensus, group membership, leader election, naming, 

and coordinationservice。

Protocol Guarantees

1)Sequential Consistency - Updates from a client will be applied in the order that they were sent.

2) Atomicity - Updates either succeed or fail. No partial results.

3) Single System Image - Aclient will see the same view of the service regardless ofthe server that it connects 

to. 

4) Reliability - Once an update has been applied, it will persist from that time forward until a client overwrites 

the update.

5) Timeliness - The clients view of the system is guaranteed to be up-to-date within a certain bound. Either system changes will be seen by a client within this bound, or the client will detect a service outage。

125247_sXtz_916817.png

125340_pold_916817.png

以上就是集群的实现,还有许多待完善之处。

关于ZooKeeper Servers集群的搭架,网上很多介绍。

转载于:https://my.oschina.net/mxs/blog/384741

你可能感兴趣的文章
随便想到,群聊天的数据库简单设计
查看>>
《Power Designer系统分析与建模实战》——1.1 软件建模
查看>>
研究人员重提影响广泛的 Java 工具集 RCE 漏洞
查看>>
开源地图 Mapbox 收购健身数据追踪 App 供应商 Human
查看>>
《深入解析sas:数据处理、分析优化与商业应用》一第3章 对单个数据集的处理...
查看>>
小程序为何刚上线就遭冷落,部分已停止更新
查看>>
《Linux设备驱动开发详解 A》一一2.1 处理器
查看>>
传奇图形程序员Michael Abrash加盟Oculus与卡马克团聚
查看>>
《3D打印:正在到来的工业革命(第2版)》——1.7节21世纪的个人计算机
查看>>
苹果要求所有应用到 2016 年底必须使用 HTTPS
查看>>
R语言数据挖掘1.4 社交网络挖掘
查看>>
阿里感悟(十一)如何准备面试
查看>>
如何在终端下以后台模式运行Linux程序
查看>>
《Linux/UNIX OpenLDAP实战指南》——2.6 OpenLDAP目录树规划
查看>>
《循序渐进学Spark 》Spark 编程模型
查看>>
Linux集群和自动化维2.6.5 自动化类脚本
查看>>
《HTML5+CSS3网页设计入门必读》——2.3 错误处理
查看>>
Java 集合教程
查看>>
本文来自合作伙伴“阿里聚安全”.
查看>>
《面向机器智能的TensorFlow实践》一3.3 通过名称作用域组织数据流图
查看>>