玩转Redis集群(上)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介:

这是redis集群介绍的上篇,主要是关于Redis集群的搭建。后续将为大家介绍Redis集群的常用命令、Java操作Redis集群、以及与Spring/Spring MVC的整合等知识。

Redis集群搭建

要想搭建一个最简单的Redis集群,那么至少需要6个节点:3个Master和3个Slave。为什么需要3个Master呢?如果你了解过Hadoop/Storm/Zookeeper这些的话,你就会明白一般分布式要求基数个节点,这样便于选举(少数服从多数的原则)。

wKioL1i21R7wulddAAApTTxpreM283.png


这里,我将采用一种“偷懒”的方式,在一个Linux虚拟机上搭建6个节点的Redis集群。(因为开启6个Linux虚拟机,我的电脑完全扛不住)

实际上,思路很简单,我将在一台节点上开启6个Redis实例,并且这6个Redis各自有自己的端口。这样的话,相当于模拟出了6台机器了。然后在以这6个实例组建Redis集群就可以了。

第一步:为这6个实例创建好各自存放的目录

wKioL1i21WyzJixvAABZ619O6pQ859.png


第二步:既然是要启动6个Redis实例,自然需要准备各自的配置文件

wKiom1i21ZKyeHiSAAAanVkctR4262.png


wKioL1i21bLzWmNuAAHJd_c9vo0295.png


具体来说,需要注意下:由于在一台机器(192.168.99.121)上,因此每个实例应该有不同的端口;同时,每个实例显然会有自己的存放数据的地方;开启AOF模式;开启集群配置;开启后台模式;

第三步:实际上,Redis集群的操作在后文你可以看到是通过Ruby脚本来完成的,因此我们需要安装Ruby相关的RPM包,以及Redis和Ruby的接口包。

wKioL1i21d6xc-ZVAABC0JeanYk540.png


wKiom1i21ffCgH-7AAArb84YcL0549.png


wKioL1i21hShf5e7AAAh4E98AU0442.png


第四步:让Redis集群工作起来!

wKiom1i21jTjsov1AAElpmAo1Bk955.png

接下来,我们要通过Ruby脚本来创建集群了。

wKiom1i21liAyk4TAAB6ZZc4WRY590.png


1
[root@mydream121 bin] # ./redis-trib.rb create --replicas 1 192.168.99.121:8001 192.168.99.121:8002 192.168.99.121:8003 192.168.99.121:8004 192.168.99.121:8005 192.168.99.121:8006


wKioL1i21pCyDxiNAACP7YZxQA8666.png

wKioL1i21qjTJIUKAABpTDYIAY4983.png

首先,我们来看一下创建集群命令中 --replicas 1,这个代表什么意思呢?1其实代表的是一个比例,就是主节点数/从节点数的比例。那么想一想,在创建集群的时候,哪些节点是主节点呢?哪些节点是从节点呢?答案是将按照命令中IP:PORT的顺序,先是3个主节点,然后是3个从节点。这一点可以通过上面的2张图片印证。

其次,注意到图中slot的概念。slot对于Redis集群而言,就是一个存放数据的地方,就是一个槽。对于每一个Master而言,会存在一个slot的范围,而Slave则没有。在Redis集群中,依然是Master可以读、写,而Slave只读。数据的写入,实际上是分布的存储在slot中,这和以前1.X的主从模式是不一样的(主从模式下Master/Slave数据存储是完全一致的),因为Redis集群中3台Master的数据存储并不一样。这一点将在后续的实验中得到验证。

第五步:验证Redis集群搭建是否成功

wKiom1i21s6QQveqAACU_jgXh6o534.png

wKioL1i21vKRTxA_AAAj1ovcelo581.png

到这里,Redis集群的搭建就完毕了,See U~


本文转自zfz_linux_boy 51CTO博客,原文链接:http://blog.51cto.com/zhangfengzhe/1902479,如需转载请自行联系原作者

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6月前
|
存储 缓存 NoSQL
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
redis分布式锁、redisson、可重入、主从一致性、WatchDog、Redlock红锁、zookeeper;Redis集群、主从复制,全量同步、增量同步;哨兵,分片集群,Redis为什么这么快,I/O多路复用模型——用户空间和内核空间、阻塞IO、非阻塞IO、IO多路复用,Redis网络模型
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
|
1月前
|
存储 NoSQL Redis
redis主从集群与分片集群的区别
主从集群通过主节点处理写操作并向从节点广播读操作,从节点处理读操作并复制主节点数据,优点在于提高读取性能、数据冗余及故障转移。分片集群则将数据分散存储于多节点,根据规则路由请求,优势在于横向扩展能力强,提升读写性能与存储容量,增强系统可用性和容错性。主从适用于简单场景,分片适合大规模高性能需求。
49 5
|
5月前
|
监控 NoSQL Redis
看完这篇就能弄懂Redis的集群的原理了
看完这篇就能弄懂Redis的集群的原理了
195 0
|
7月前
|
存储 运维 NoSQL
Redis Cluster集群模式部署
Redis Cluster集群模式部署
135 4
|
7月前
|
监控 NoSQL 算法
手把手教你如何搭建redis集群(二)
手把手教你如何搭建redis集群(二)
453 1
|
7月前
|
存储 NoSQL 容灾
手把手教你如何搭建redis集群(一)
手把手教你如何搭建redis集群(一)
233 1
|
6月前
|
存储 NoSQL 算法
Redis 集群模式搭建
Redis 集群模式搭建
110 5
|
6月前
|
存储 缓存 NoSQL
高并发架构设计三大利器:缓存、限流和降级问题之Redis用于搭建分布式缓存集群问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之Redis用于搭建分布式缓存集群问题如何解决
112 1
|
6月前
|
缓存 NoSQL Java
Redis Spring配置集群
【7月更文挑战第5天】
94 10
下一篇
开通oss服务