Linux系统集群部署:(Cluster)

萨瓦迪卡7个月前 (09-05)redis2859

redis集群部署也是实现redis故障转移的方案之一,也就是高可用性(支持主从复制和节点的自动故障转移)。还有另一个作用就是:数据分区(集群将数据分散到多个节点,⼀⽅⾯突破了Redis单机内存⼤⼩的限制,存储容量⼤⼤增加。另⼀⽅⾯每个主节点都可以对外提供读服务和写服务,大大提高了集群的响应能力)。主从部署及哨兵部署等,每个节点都包含了完整的主数据,并不是真正的分布式运行模式。
Redis 集群是 Redis 的⼀种分布式运⾏模式,它通过分⽚(sharding)来提供数据的⾃动分区和管理,从⽽实现数据的⾼可⽤性和可扩展性。
在集群模式下,数据被分割成多个部分(称为槽或slots),分布在多个 Redis 节点上。

15ef696b-fed8-4d72-bf79-9558aadd6cde.png

1. Redis集群的数据分⽚
Redis集群引⼊了哈希槽的概念 Redis集群有16384个哈希槽(编号0-16383) 集群的每个节点负责⼀部分哈希槽, 每个Key通过CRC16校验后对16384取余来决定放置哪个哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接⾃动跳转到这个对应的节点上进⾏存取操作:
以3个节点组成的集群为例: 节点A包含0到5460号哈希槽 ,节点B包含5461到10922号哈希槽, 节点C包含10923到16383号哈希槽。
Redis集群的主从复制模型 集群中具有A、B、C三个节点,如果节点B失败了,整个集群就会因缺少5461-10922这个范围的槽⽽不可以⽤。
为每个节点添加⼀个从节点A1、B1、C1整个集群便有三个Master节点三个slave节点组成,在节点B失败后,集群选举B1为主节点继续服务。当B和B1都失败后,集群将不可⽤。
2. Reids 集群部署
Redis Cluster被配置为三主三从模式。这意味着每台服务器上的两个Redis节点中,⼀个节点作为主库(master),另⼀个作为从库(slave)

64190799-cdab-4a6d-b1c1-eb908d069b88.png

基于主从架构的基础上,我们会在每一个机器上部署一个6380的redis服务,也就是每个机器上有2个redis服务。也就不能用redis.conf来启动服务了,因为一个redis.conf文件不能同时启用2个服务。
1.4.3.2. redis 集群配置准备
1首先创建一个cluster文件夹,这里面会存储两个redis服务的redis.conf配置,以及两个服务的日志。只不过是以端口区分。
2同时在redis下也创建一个cluster,存放的是两个redis服务的工作目录。也会按照端口进行区分。

3需要注意的是我们三台机器上的6379,6380的服务是完全一样的,只是ip端口不同。因此我们在配置一个机器的时候,另外两个机器的配置可以直接复制过去。先依次修改6379的文件,再依次修改6380的文件。

命令:

-- 创建集群配置文件夹,将下面的2行配置复制过去,另外两个机器重复这个过程
mkdir -p /opt/software/redis/redis-stable/cluster
mkdir -p /opt/software/redis/cluster
vim ./cluster/redis_6379.conf
vim ./cluster/redis_6380.conf
-- 配置⽂件准备完成之后,启动所有redis服务,⽤cluster配
置⽂件
redis-server ./cluster/redis_6379.conf
redis-server ./cluster/redis_6380.conf
-- 检查服务
ps aux | grep redis
-- 创建三主三从集群模式,每⼀个主节点带⼀个从节点
redis-cli --cluster create --cluster-replicas 1 192.168.75.129:6379 192.168.75.129:6380 192.168.75.131:6379 192.168.75.131:6380 192.168.75.132:6379 192.168.75.132:6380
-- 查看集群信息
redis-cli cluster info
-- 查看单个节点信息
redis-cli info replication
-- 查看集群节点身份信息
redis-cli cluster nodes
19-- 停⽌redis服务
redis-cli -p 6379 shutdown
redis-cli -p 6380 shutdown
6379配置 文件
# 允许所有的IP地址
bind * -::* 
# 后台运⾏
daemonize yes 
# 允许远程连接
protected-mode no 
# 开启集群模式
cluster-enabled yes
# 集群节点超时时间
cluster-node-timeout 5000
# 配置数据存储⽬录
dir "/opt/software/redis/cluster"
# 开启AOF持久化
appendonly yes
# 端⼝
port 6379 
# log⽇志
logfile "/opt/software/redis/redis-stable/cluste
r/redis6379.log" 
# 集群配置⽂件
cluster-config-file nodes-6379.conf
# AOF⽂件名
appendfilename "appendonly6379.aof" 
# RBD⽂件名
dbfilename "dump6379.rdb"

6380配置
# 允许所有的IP地址
bind * -::* 
# 后台运⾏
daemonize yes 
# 允许远程连接
protected-mode no 
# 开启集群模式
cluster-enabled yes
# 集群节点超时时间
cluster-node-timeout 5000
# 配置数据存储⽬录
dir "/opt/software/redis/cluster"
# 开启AOF持久化
appendonly yes
# 端⼝
port 6380
# log⽇志
logfile "/opt/software/redis/redis-stable/cluste
r/redis6380.log" 
# 集群配置⽂件
cluster-config-file nodes-6380.conf
# AOF⽂件名
appendfilename "appendonly6380.aof" 
# RBD⽂件名
dbfilename "dump6380.rdb"
启动6379的服务后,查看下进程:ps aux|grep redis 。这时我们的三台机器上都分别运行了2个cluster服务。

a5408be5-4a53-46d9-a550-fc07524c3051.png

然后使用命令创建集群:注意改成自己的ip及端口。这个命令只需要在一台机器上执行就可以。也就是在129,7号机上执行的。
-- 创建三主三从集群模式,每⼀个主节点带⼀个从节点
redis-cli --cluster create --cluster-replicas 1 192.168.75.129:6379 192.168.75.129:6380 192.168.75.131:6379 192.168.75.131:6380 192.168.75.132:6379 192.168.75.132:6380
回复yes。
然后查看集群信息:
redis-cli cluster inf


e3348f54-e078-4f39-a876-9d41268fb1b2.png

也可以查看
-- 查看单个节点信息
redis-cli info replication

34e56178-859b-46ac-a715-1abbfa431681.png

可以看到6379的这个节点的端口是master的角色,因为我们没有指明端口的情况下,他默认的就是6379.它的从节点是131的6380
此外,我们还可以:查看节点的配置
-- 查看集群节点身份信息
redis-cli cluster node

9b4145a5-5968-4c19-a79d-028229211860.png

可以看到3个master节点,以及分别对应的槽位。也可以根据编号查看对应的从节点。已经搭建完成。
模拟故障转移:
比如129的主节点6379如果故障,那么它的从节点131的6380应该晋升为主节点。
将129的6379的服务干掉:redis-cli shutdown
然后直接查看131的6380角色:redis-cli -p 6380 info replication

caafd649-df16-4135-a7b0-bde7b69a3cf4.png

将129的6379的服务恢复后,它也有了自己的小弟:

49021744-a4a3-4d49-8e23-bc9c5610ae8d.png

本文原创,转载必追究版权。

分享给朋友:

相关文章

linux下启动oracle实例

 启动数据库实例,分为两步:第一步,启动监听;第二步,启动数据库实例。 一、如何启动数据库实例  1.进入到sqlplus启动实例[root@localhost...

get/post方式调用http接口

get/post方式调用http接口

 1. 项目环境如下:myeclipse8.5 、tomcat5.0/weblogic、xp、JDK:开发1.5,编译1.4为了方便,在原来的web项目UpDown中新建了一个httpcal...

js/jquery 日历控件及实例下载

js/jquery 日历控件及实例下载

实现日历控件效果:页面:<link href="${base}/resource/${profile.path}/css/lhgcalendar.css" rel="...

js/jquery 实现点击图片更换头像(图片)实例

    总之一句话, 可以先将 file类型 的input 隐藏 起来,通过 图片(头像)的onclick事件 来触发 file 的onclick事件。1.引入外部js:...

dwz+jfinal 市县下拉菜单二级联动(实例)

在DWZ文档中对组合框combox的是这样描述的:在传统的select 用class 定义:class=”combox”, html 扩展:保留原有属性name,  增加了属性:ref。re...

jfinal 定时任务

1、去quartz官网下载 定时任务jar包(http://www.quartz-scheduler.org/)quartz-*.*.*.jar2、创建定时任务:public class SetAre...

评论列表

quickq官网
3个月前 (12-18)

楼主是在找骂么?https://www.quickq9.com

quickq电脑版
3个月前 (12-19)

支持一下!https://www.quickq9.com

TokenPocket能量租赁服务
3个月前 (12-24)

TRX能量租赁 - 2 TRX=1次转账次数 直接节省80%!无视对方有没有U或者是否交易所- 复制地址【TAZdAh5LU55aUPPZkgF4rupQwg6inQ5J5X】转 2 TRX即可0手续费转账!TG机器人频道:@xingtahttps://t.me/xingta

quickq官网
3个月前 (12-25)

楼主的帖子越来越有深度了!https://www.quickq9.com

quickq下载
3个月前 (12-30)

祖国尚未统一,我却天天灌水,好内疚!https://www.quickq9.com

微信代付
3个月前 (12-30)

ai实时换脸 TeleGram@odiodihttps://t.me/odiodi

Trx能量租赁api
3个月前 (01-01)

TRX能量租赁 - 2 TRX=1次转账次数 直接节省80%!无视对方有没有U或者是否交易所- 复制地址【TAZdAh5LU55aUPPZkgF4rupQwg6inQ5J5X】转 2 TRX即可0手续费转账!TG机器人频道:@xingtahttps://t.me/xingta

quickq下载
3个月前 (01-03)

太高深了,理解力不够用了!https://www.quickq9.com

quickq下载
3个月前 (01-04)

太邪乎了吧?https://www.quickq9.com

quickq电脑版
3个月前 (01-05)

缺乏激情了!https://www.quickq9.com

QuickQ
3个月前 (01-05)

我只看看不说话。。。https://www.quickq9.com

quickq下载
2个月前 (01-08)

看帖回帖一条路!https://www.quickq9.com

quickq官网
2个月前 (01-09)

楼主很有经验啊!https://www.quickq9.com

quickq电脑版
2个月前 (01-16)

最近压力山大啊!https://www.quickq9.com

quickq电脑版
2个月前 (01-17)

楼主内心很强大!https://www.quickq9.com

USDT-trc20免费转账
2个月前 (01-20)

trx鎵嬬画璐?- 1.5 TRX=1娆¤浆璐︽鏁?鐩存帴鑺傜渷80%!鏃犺瀵规柟鏈夋病鏈塙鎴栬€呮槸鍚︿氦鏄撴墍- 澶嶅埗鍦板潃銆怲AZdAh5LU55aUPPZkgF4rupQwg6inQ5J5X銆戣浆 1.5 TRX鍗冲彲0鎵嬬画璐硅浆璐?TG鏈哄櫒浜?@trxokokbothttps://t.me/xingtatrx

波场TRX能量租赁
1个月前 (02-08)

USDT杞处鑺傜渷鎵嬬画璐?- 1.5 TRX=1娆¤浆璐︽鏁?鐩存帴鑺傜渷80%!鏃犺瀵规柟鏈夋病鏈塙鎴栬€呮槸鍚︿氦鏄撴墍- 澶嶅埗鍦板潃銆怲AZdAh5LU55aUPPZkgF4rupQwg6inQ5J5X銆戣浆 1.5 TRX鍗冲彲0鎵嬬画璐硅浆璐?TG鏈哄櫒浜?@trxokokbothttps://t.me/xingtatrx

谷歌浏览器
3周前 (03-04)

强,我和我的小伙伴们都惊呆了!https://d-google.com

WPS
3周前 (03-04)

不灌水就活不下去了啊!https://i-wps.it.com

谷歌浏览器下载
3周前 (03-04)

写的太好啦,评论一个https://win-google.com.cn

wps下载
3周前 (03-04)

支持一下!https://www.wps-it.cn

谷歌浏览器官网
3周前 (03-04)

楼主主机很热情啊!https://www.d-google.com

wps
3周前 (03-04)

帖子很有深度!https://org-wps.com.cn

WPS下载
3周前 (03-04)

我默默的回帖,从不声张!https://www.i-wps.it.com

有道翻译
3周前 (03-04)

好好学习楼主的帖子!https://pc-youdao.it.com

有道翻译下载
3周前 (03-05)

楼主主机很热情啊!https://www.zh-youdao.it.com

谷歌浏览器下载
3周前 (03-05)

鉴定完毕!https://d-google.com

谷歌浏览器官网
3周前 (03-05)

有机会找楼主好好聊聊!https://www.win-chrome.it.com

快连VPN
3周前 (03-05)

今天是个特别的日子,值得纪念!https://pc-kuailian.it.com

WPS官网
3周前 (03-05)

我只看看不说话。。。https://www.w-wps.it.com

谷歌浏览器下载
3周前 (03-06)

楼主内心很强大!https://www.d-google.com

WPS官网
3周前 (03-06)

缺乏激情了!https://www.win-wps.it.com

helloworld
3周前 (03-06)

今天过得很不爽!https://www.mace-helloworlds.com

谷歌浏览器
3周前 (03-06)

楼主练了葵花宝典吧?https://www.win-google.com.cn

helloworld
3周前 (03-06)

楼主好聪明啊!https://www.to-helloworld.net

快连VPN官网
3周前 (03-06)

网页的加载速度非常快,不会影响用户体验。https://vpn-kuailian.it.com

谷歌浏览器下载
3周前 (03-06)

楼主写的很经典!https://www.win-chrome.it.com

helloworld官网
3周前 (03-06)

刚看见一个妹子,很漂亮!https://www.mac-helloworld.com

WPS官网
2周前 (03-07)

这位作者的文笔极其出色,用词精准、贴切,能够形象地传达出他的思想和情感。https://www.w-wps.it.com

有道翻译官网
2周前 (03-07)

收藏了,楼主加油!https://youdao-pc.it.com

节省TRX手续费
23小时前

usdt转账手续费 - 2 TRX=1次转账次数 直接节省80%!无视对方有没有U或者是否交易所,低于 2 TRX的都是钓鱼的骗子- 复制地址【THXfhfV6ThhYzt7d8mm4KL3dE5LWBbwb3s】转 2 TRX即可0手续费转账!TG机器人: @jzzTRXbot 官网: https://jzztrx.com

wps下载
19小时前

好好学习楼主的帖子!https://www-wps-cn.com

wps下载
16小时前

观点鲜明,立场坚定,作者态度明确。https://www-wps-cn.com

wps下载
15小时前

论坛的人气不行了!https://www-wps-cn.com

有道翻译在线
13小时前

好东西,赞一个!https://i-youdao.com.cn

有道翻译下载
13小时前

楼主看起来很有学问!https://i-youdao.com.cn

有道翻译官网
8小时前

写的太好啦,评论一个https://i-youdao.com.cn

WPS官网
7小时前

无图无真相!https://www.win-wps.it.com

helloworld官网
2小时前

吹牛的人越来越多了!https://www.on-helloworlds.com

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。