ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Redis Cluste部署与Jedis整合Sentinel与Clusterr(一)

2019-09-27 12:02:22  阅读:247  来源: 互联网

标签:CLUSTER Redis Cluste redis cluster conf Clusterr 7000 节点


一.原生搭建篇Cluster了解cluster的架构)

1.redis.conf配置文件中开启支持cluster集群,改名字为redis-cluster-7000.conf(方便后面集群管理)

port 7000
daemonize yes
pidfile /var/run/redis-7000.pid
dir /opt/module/redis-cluster/data
logfile "7000.log"
dbfilename "dump-7000.rdb"
#开启集群
cluster-enabled yes
#集群中本节点配置文件名 自动生成
cluster-config-file nodes-7000.conf
#当集群中某个节点挂了,整个集群是否停止服务,设置成no 继续提供服务
cluster-require-full-coverage no

2.用上面的配置文件启动redis,确保配置文件没问题

3.用sed命令生成其他节点的配置文件

sed "s/7000/7001/g" redis-cluster-7000.conf >redis-cluster-7001.conf 
sed "s/7000/7002/g" redis-cluster-7000.conf >redis-cluster-7002.conf 
sed "s/7000/7003/g" redis-cluster-7000.conf >redis-cluster-7003.conf 
sed "s/7000/7004/g" redis-cluster-7000.conf >redis-cluster-7004.conf 
sed "s/7000/7005/g" redis-cluster-7000.conf >redis-cluster-7005.conf 
sed "s/7000/7006/g" redis-cluster-7000.conf >redis-cluster-7006.conf 

4.启动每个节点 redis-server redis-cluster-700(1~6).conf

启动后会生成相应的nodes-700(0~6).conf文件。该文件列出了群集中其他节点,它们的状态,持久变量等等。 由于某些消息的接收,通常会将此文件重写并刷新到磁盘上。

5.每个节点互通(meet)

结构图:

 

官方:

请注意,Redis 群集需要形成完整的网格(每个节点与其他节点相连,如上图),但为了创建群集,不需要发送形成完整网格所需的所有 CLUSTER MEET 命令。重要的是发送足够的 CLUSTER MEET 消息,以便每个节点都可以通过一系列已知节点到达每个其他节点。

所以只需要有一条通路就可以

进去7000的节点,执行cluster meet 与其他节点通信

redis-cli -p 7000
CLUSTER MEET 127.0.0.1 7001
CLUSTER MEET 127.0.0.1 7002
CLUSTER MEET 127.0.0.1 7003
CLUSTER MEET 127.0.0.1 7004
CLUSTER MEET 127.0.0.1 7005
CLUSTER MEET 127.0.0.1 7006

6.查看是否连通

redis-cli -p 7000 cluster info
#结果: cluster_state:fail #集群状态 cluster_slots_assigned:0 #被分配的槽位数 cluster_slots_ok:0 #正确分配的槽位 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:7 #当前集群下的所有节点,包括主从节点,7说明通了 cluster_size:0 #当前集群下的有槽位分配的节点,即主节点 cluster_current_epoch:6 cluster_my_epoch:1 cluster_stats_messages_ping_sent:1391 cluster_stats_messages_pong_sent:1375 cluster_stats_messages_meet_sent:6 cluster_stats_messages_sent:2772 cluster_stats_messages_ping_received:1375 cluster_stats_messages_pong_received:1397 cluster_stats_messages_received:2772

7.分配槽

采用的是一致性哈希算法,来分配总共给定的16383个槽,此处为了方便就均分了,实际开发中建议根据服务器配置分配。

这里使用7001-7003作为主节点 7004-7006做从节点

这里使用7001-7003作为主节点 7004-7006做从节点

#此处的分配规则
7001   0~5000
7002   5001~10000
7003   10001~16383
#代码:
redis-cli -p 7001 CLUSTER ADDSLOTS 5000
redis-cli -p 7002 CLUSTER ADDSLOTS 10000
redis-cli -p 7003 CLUSTER ADDSLOTS 16838

结构图:

 

8.配置主从

这里需要用到Nodeid,第一步中配置生成的文件中可以看

#第一步的配置  可以查看nodes-7000.conf这个文件
cluster-config-file nodes-7000.conf

一一对应:红框为Nodeid

进入每个主节点用 cluster replicate <从Nodeid>

redis-cli -p 7001 cluster replicate da47d14c9e4079ad0973546027f598aab3596fff

查看结果

redis-cli -p 7001 cluster nodes

到此原生配置完成。

下一篇开始Ruby快速搭建Cluster集群。

标签:CLUSTER,Redis,Cluste,redis,cluster,conf,Clusterr,7000,节点
来源: https://www.cnblogs.com/Innocent-of-Dabber/p/11597030.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有