Redis 分布式集群搭建2022版本(linux环境)

Linux环境 安装 Redis-6.2.6 配置运行_01
https://gblfy.blog.csdn.net/article/details/105583077

文章目录

          • 一、节点分布总览
          • 二、软件配置初始化
            • 2.1. 下载
            • 2.2. 解压
            • 2.3. 编译安装
            • 2.4. 配置抽离
            • 2.5. 配置编辑
            • 2.6. 101节点操作
            • 2.7. 102 节点操作
            • 2.8. 103节点操作
          • 三、软件配置集群化
            • 3.1. 101节点执行
            • 3.2. 102节点执行
            • 3.3. 103节点执行
          • 四、节点握手
            • 4.1. 关闭防火墙
            • 4.2. 节点握手
          • 五、槽位分配
            • 5.1. 槽位分配
            • 5.2. 查看集群信息
            • 5.3. 日志操作信息
          • 六、配置主从
            • 6.1. 配置主从
            • 6.2. 操作记录
          • 七、集群验证
            • 7.1. 登录7001节点
            • 7.2. 查看集群信息
            • 7.3. 操作记录

Redis 分布式集群能解决的问题集群 概念
解决现有系统单节点并发压力和物理上限问题通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定、高效的状态
一、节点分布总览

演示案例
3主3从 横向扩展

服务器端口节点说明
192.168.0.1017001master
192.168.0.1017002slave
192.168.0.1027003master
192.168.0.1027004slave
192.168.0.1037005master
192.168.0.1037006slave
二、软件配置初始化

2.1~2.5属于公共部分,101/102/103服务器需要依次执行

2.1. 下载
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
2.2. 解压
cd /app
tar -zxvf redis-6.2.6.tar.gz
2.3. 编译安装
cd redis-6.2.6/
make install
2.4. 配置抽离
mkdir /app/redis-cluster/
cp /app/redis-6.2.6/redis.conf /app/redis-cluster/
2.5. 配置编辑
vim /app/redis-cluster/redis.conf
2.6. 101节点操作
把bind 127.0.0.1 -::1调整为bind 0.0.0.0
port 6379      改为  port 7001
把daemonize no修改为yes 允许后台启动
pidfile /var/run/redis_6379.pid 改为 pidfile /var/run/redis_7001.pid注释打开 cluster-enabled yes
注释打开 cluster-node-timeout 15000
注释打开并修改node节点 cluster-config-file nodes-7001.conf
保存退出
2.7. 102 节点操作
把bind 127.0.0.1 -::1调整为bind 0.0.0.0
port 6379      改为  port 7003
把daemonize no修改为yes 允许后台启动
pidfile /var/run/redis_6379.pid 改为 pidfile /var/run/redis_7003.pid注释打开 cluster-enabled yes
注释打开 cluster-node-timeout 15000
注释打开并修改node节点 cluster-config-file nodes-7003.conf
保存退出
2.8. 103节点操作
把bind 127.0.0.1 -::1调整为bind 0.0.0.0
port 6379      改为  port 7005
把daemonize no修改为yes 允许后台启动
pidfile /var/run/redis_6379.pid 改为 pidfile /var/run/redis_7005.pid注释打开 cluster-enabled yes
注释打开 cluster-node-timeout 15000
注释打开并修改node节点 cluster-config-file nodes-7005.conf
保存退出
三、软件配置集群化
3.1. 101节点执行
  • 配置抽离
cd /app/redis-cluster/
cp redis.conf redis-7001.conf
cp redis.conf redis-7002.conf
vim redis-7002.conf
  • 具体修改详细
    把 port 7001修改为 7002
    把pidfile /var/run/redis_ 7001.pid 改为 pidfile /var/run/redis_ 7002.pid
    把修改node节点 cluster-config-file nodes- 7001.conf 调整为cluster-config-file nodes- 7002.conf

  • 启动redis

/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7001.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7002.conf
ps -ef |grep redis
3.2. 102节点执行
  • 配置抽离
cd /app/redis-cluster/
cp redis.conf redis-7003.conf
cp redis.conf redis-7004.conf
vim redis-7004.conf
  • 具体修改详细

把 port 7003 修改为 7004
把pidfile /var/run/redis_ 7003.pid 改为 pidfile /var/run/redis_ 7004.pid
把修改node节点 cluster-config-file nodes- 7003.conf调整为cluster-config-file nodes- 7004.conf

  • 启动redis
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7003.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7004.conf
ps -ef |grep redis
3.3. 103节点执行
  • 配置抽离
cd /app/redis-cluster/
cp redis.conf redis-7005.conf
cp redis.conf redis-7006.conf
vim redis-7006.conf
  • 具体修改详情

把 port 7005 修改为 7006
把pidfile /var/run/redis_ 7005.pid 改为 pidfile /var/run/redis_ 7006.pid
把修改node节点 cluster-config-file nodes- 7005.conf 调整为cluster-config-file nodes- 7006.conf

  • 启动redis
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7005.conf
/app/redis-6.2.6/src/redis-server /app/redis-cluster/redis-7006.confps -ef |grep redis
四、节点握手

上面仅仅是搭建了集群,6个节点之间还没有关系,下面通过 节点握手让集群各节点之间,发生关系。

4.1. 关闭防火墙

centos7.x

systemctl stop firewalld

centos6.x

service iptables stop
4.2. 节点握手

登录101服务器的7001节点,依次执行(一条一条复制粘贴)以下命令:

/app/redis-6.2.6/src/redis-cli -h 192.168.0.101  -p 7001
cluster meet 192.168.0.101  7002
cluster meet 192.168.0.102  7003
cluster meet 192.168.0.102  7004
cluster meet 192.168.0.103  7005
cluster meet 192.168.0.103  7006
五、槽位分配

登录101服务器的7001节点,依次执行(一条一条复制粘贴)以下命令:

5.1. 槽位分配
/app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7001 cluster addslots {0..5461}
/app/redis-6.2.6/src/redis-cli -h 192.168.0.102 -p 7003 cluster addslots {5462..10922}
/app/redis-6.2.6/src/redis-cli -h 192.168.0.103 -p 7005 cluster addslots {10923..16383}
5.2. 查看集群信息
/app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7001

查看集群信息:cluster info
查看节点信息:cluster nodes

5.3. 日志操作信息
root@redis-cluster]# /app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7001
192.168.0.101:7001> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:5
cluster_my_epoch:1
cluster_stats_messages_ping_sent:670
cluster_stats_messages_pong_sent:676
cluster_stats_messages_meet_sent:5
cluster_stats_messages_sent:1351
cluster_stats_messages_ping_received:676
cluster_stats_messages_pong_received:675
cluster_stats_messages_received:1351
192.168.0.101:7001> cluster nodes
86002bbf6c62cd5d7511473ee1947531c25e1348 192.168.0.102:7003@17003 master - 0 1647941463270 3 connected 5462-10922
5f1128f200cd4446432e499a1a16f17c5a6178a7 192.168.0.103:7006@17006 master - 0 1647941462000 5 connected
895cfd76481d0ceba0fa5c5ba715980d08c2af83 192.168.0.102:7004@17004 master - 0 1647941464276 4 connected
59423855a7d7062a73f3de80826cbcd1021631de 192.168.0.101:7001@17001 myself,master - 0 1647941461000 2 connected 0-5461
4c9c2e112fded275bd02ab579ab8333c1cc98030 192.168.0.101:7002@17002 master - 0 1647941461000 1 connected
8de49a5b81ab20c4e087dcaeba9aa126773f0657 192.168.0.103:7005@17005 master - 0 1647941462266 0 connected 10923-16383
192.168.0.101:7001>

注:目前都是master,节点信息等会要用,这个窗口先不要关闭,
再新开一个窗口,进行下一步操作

六、配置主从

登录101服务器的7001节点,依次执行(一条一条复制粘贴)以下命令:

6.1. 配置主从

主从复制原则(交叉复制):7004复制7001、7006复制7003、7002复制7005

/app/redis-6.2.6/src/redis-cli -h 192.168.0.102 -p 7004 cluster replicate 59423855a7d7062a73f3de80826cbcd1021631de
/app/redis-6.2.6/src/redis-cli -h 192.168.0.103 -p 7006 cluster replicate 86002bbf6c62cd5d7511473ee1947531c25e1348
/app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7002 cluster replicate 8de49a5b81ab20c4e087dcaeba9aa126773f0657
6.2. 操作记录
[root@ ~]# /app/redis-6.2.6/src/redis-cli -h 192.168.0.102 -p 7004 cluster replicate 59423855a7d7062a73f3de80826cbcd1021631de
OK
[root@ ~]# /app/redis-6.2.6/src/redis-cli -h 192.168.0.103 -p 7006 cluster replicate 86002bbf6c62cd5d7511473ee1947531c25e1348
OK
[root@ ~]# /app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7002 cluster replicate 8de49a5b81ab20c4e087dcaeba9aa126773f0657
OK
[root@ ~]#
七、集群验证

登录101服务器的7001节点,依次执行(一条一条复制粘贴)以下命令:

7.1. 登录7001节点
/app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7001
7.2. 查看集群信息
/app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7001

查看集群信息:cluster info
查看节点信息:cluster nodes

注:目前3主3从 当主节点挂掉之后,从节点自动上位

7.3. 操作记录
[root@ ~]# /app/redis-6.2.6/src/redis-cli -h 192.168.0.101 -p 7001
192.168.0.101:7001> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:5
cluster_my_epoch:1
cluster_stats_messages_ping_sent:1365
cluster_stats_messages_pong_sent:1344
cluster_stats_messages_meet_sent:5
cluster_stats_messages_sent:2714
cluster_stats_messages_ping_received:1344
cluster_stats_messages_pong_received:1370
cluster_stats_messages_received:2714
192.168.0.101:7001> cluster nodes
8de49a5b81ab20c4e087dcaeba9aa126773f0657 192.168.0.103:7005@17005 master - 0 1647932952097 4 connected 10923-16383
86002bbf6c62cd5d7511473ee1947531c25e1348 192.168.0.102:7003@17003 master - 0 1647932951094 2 connected 5462-10922
59423855a7d7062a73f3de80826cbcd1021631de 192.168.0.101:7001@17001 myself,master - 0 1647932950000 1 connected 0-5461
4c9c2e112fded275bd02ab579ab8333c1cc98030 192.168.0.101:7002@17002 slave 8de49a5b81ab20c4e087dcaeba9aa126773f0657 0 1647932950092 4 connected
5f1128f200cd4446432e499a1a16f17c5a6178a7 192.168.0.103:7006@17006 slave 86002bbf6c62cd5d7511473ee1947531c25e1348 0 1647932949000 2 connected
895cfd76481d0ceba0fa5c5ba715980d08c2af83 192.168.0.102:7004@17004 slave 59423855a7d7062a73f3de80826cbcd1021631de 0 1647932951000 1 connected
192.168.0.101:7001> exit
[root@~]#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/515838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Istio进行多集群部署管理(2):单控制平面Gateway连接拓扑

单控制平面拓扑下,多个 Kubernetes 集群共同使用在其中一个集群上运行的单个 Istio 控制平面。控制平面的 Pilot 管理本地和远程集群上的服务,并为所有集群配置 Envoy Sidecar 代理。 集群感知的服务路由 Istio 1.1 中引入了集群感知的服务路由能力&am…

javamail “535 5.7.3 Authentication unsuccessful“ 问题排查

有一家odm的服务器用Javamail发邮件的时候报错 Authentication unsuccessful 其他的有些又是正常的网上查了一下解决方法如下JavaMailSenderImpl认证异常了,出现:javax.mail.AuthenticationFailedException: failed to connect的异常, 将JAVAMAIL的DEBUG日志打开,通过propert…

智能制造的灾备问题如何解决?

提起压力、温度校准行业会让大部分非专业人士感到陌生。但实际上,在我们的日常生活中,很多设备都是需要经过压力检测、温度检测、过程信号检测合格之后才正式投放市场使用的, 北京康斯特仪表科技股份有限公司(以下简称康斯特&…

计算机硬件基础-存取方式

顺序存取 对数据的访问必须按特定的线性顺序进行; 直接存取 直接存储使用一个共享的读写装置对所有的数据进行访问,每个数据块都有唯一地址标志,读写装置可以直接移动到数据块所在位置访问,但对于数据块内的内容,采…

疫情下开源数据库逆势增长,新基建下国产数据库迎机遇

2020年5月DB-Engines 数据库流行度排行大家都看了吗? 虽然 Top 10 与上月没有任何变化,但仔细观察本月的排行榜,Oracle 较上月几乎持平,仅微涨 0.02 分;相较而言,MySQL 增长明显,达到 14.29 分…

寻找长沙“科技之星”,CSDN星城大巡礼

2020年,长沙市委主要领导发出“软件产业再出发”的号召,并颁布了软件三年行动计划。今年5月,CSDN作为专业的IT社区,与长沙高新区签约,将全国总部落户长沙,这一战略决策,让CSDN与长沙的联结进一步…

分布式任务调度平台一站式讲解

文章目录一、传统的定时任务1. 传统的定时任务存在那些缺点2. 分布式任务调度3. 定时任务集群幂等性问题二、传统定时任务的实现方案2.1. 多线程2.2. TimeTask2.3. 线程池2.4. SpringBoot注解形式2.5. 基于Quartz三、常⻅分布式定时任务3.1. Quartz3.2. TBSchedule3.3. Elastic…

数据库系统 - 范式

第一范式 关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可分割的数据项; 第二范式 当且仅当R满足第一范式,且主键为多个属性值组成,且每个非主属性都完全依赖主键; 第三范式 当且仅当R满足…

全球CT影像20秒诊断,阿里云为新冠AI辅助诊断系统加速

新冠病毒全球爆发 2020年注定是不平凡的一年,新型冠状病毒肆虐全球,对于每个人来说都是一场灾难。 根据丁香园统计的数据,截止到2020年5月29日,全球新冠(COVID-19)累计确诊病例5,593,631人,累计…

麒麟信安操作系统:挖掘场景,与云俱进 ——携手openEuler赋能关键行业应用

12月24日,由中国电子技术标准化研究院、中国软件行业协会、绿色计算产业联盟主办,华为、飞腾、麒麟信安等操作系统厂商协办的操作系统产业峰会在北京成功举行。湖南麒麟信安科技股份有限公司作为华为重点邀请的四家openEuler商业发行版企业代表&#xff…

template might not exist or might not be accessible by any of the configured

我在后台返回json串,但是在前台进行接收的时候,出现thymeleaf无法解析,前台接收不到后台传来的信息。所以前台报500。 问题解决:将Controller更改为RestController即可解决

软考 - 可靠性和可用性

可靠性 系统在给定时间间隔内和给定条件下无失效运行的效率; 可用性 软件特定使用环境下为特定用户提供特定功能时具有的有效性;

IDEA中导入VUE后,JS文件爆红解决办法

原因:可能是js版本不兼容的问题,修改如下图: 点击File–>settings,搜索:JavaScript,如图修改

软考 - 图

文章目录1.图的分类1.1.强连通图1.2.完全图2.存储结构2.1.邻接矩阵表示法:2.2.邻接链表表示法:3.图的遍历3.1.深度优先遍历3.2.广度优先遍历4.最小生成树4.1.普里姆算法:4.2.克鲁斯卡尔算法:5.AVO网络、AOE网络1.图的分类 1.1.强…

带你一文看懂 Blockchain + NoSQL数据库

来源 | Tyler Mitchell译者 | 火火酱,责编 | Carol图源 | CSDN下载自视觉中国NoSQL数据库和现代区块链分类账都受益于一套共同的原则。由于其二者平台可以相互补充,因此当它们服务于同一应用程序时,能够配合完成多种工作。在本文中&#xff0…

来,一起“八卦”一下数据湖

原文链接 本文为云栖社区原创内容,未经允许不得转载。

mybatisplus代码生成器3.5.2

Mybatis-plus最新代码生成器(3.5.1)的使用 mybatis-plus 代码生成器(3.5.2) Autowiredprivate CodeGeneratorMapper codeGeneratorMapper;//ip地址private String DB_URL "";//用户名private String DB_USERNAME &q…

从OpenKruise用户疑问开始理解K8s资源更新机制

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 背景 OpenKruise 是阿里云开源的大规模应用自动化管理引擎,在功能上对标了 Kubernetes 原生的 Deployment / Sta…

软考-信息安全

文章目录对称加密(私钥加密)非对称加密(公钥加密)信息摘要、数字信封、数字签名、数字证书安全协议网络攻击入侵检测计算机病毒防火墙对称加密(私钥加密) 加密、解密用同一个密钥;适用于大消息…

学霸的奇葩选择,成功不仅靠运气,对话阿里云MVP黄胜蓝

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 简介: 为了逃避高考,他凭借NOIP一等奖成功保送武大;大学时就负责校园门户网站的运维工作&…