redis集群搭建 - cluster模式

news/2024/11/14 22:43:27/文章来源:https://www.cnblogs.com/krcc/p/18542557

概述

搭建一套redis cluster集群。



架构

192.168.0.21:6379 主 192.168.0.23:6380 从
192.168.0.22:6379 主 192.168.0.21:6380 从
192.168.0.23:6379 主 192.168.0.22:6380 从

修改这三台服务器的host文件(选做)

vim /etc/hosts
192.168.0.21 node1
192.168.0.22 node2
192.168.0.23 node3

安装步骤

1. 安装gcc环境1. 安装gcc环境
yum install gcc-c++ --nogpgcheck
2. 进入解压目录编译,安装
make
# 指定了安装目录
make instal PREFIX=/usr/local/redis
3. 进入安装目录,创建文件夹
cd /usr/local/redis
mkdir -p redis_63{79,80}/{conf,pid,logs}
4.编辑conf文件
# 绑定端口,需要修改
port 6380# pid文件存储位置,文件名需要修改
pidfile /usr/local/redis/redis_6380/pid/redis_6380.pid# log文件存储位置,文件名需要修改
logfile /usr/local/redis/redis_6380/logs/redis_6380.log# RDB快照备份文件名,文件名需要修改
dbfilename redis_6380.rdb# 本地数据库存储目录,需要修改
dir /usr/local/redis/redis_6380# 生成的集群节点配置文件名,文件名需要修改
cluster-config-file nodes_6380.conf# 保护模式:关闭
protected-mode no
# ip限制:不限制(不推荐用bind来限制ip,应该用防火墙限制)
bind 0.0.0.0
# 密码
requirepass 123456
# 主节点密码
masterauth 123456# 守护进行模式启动
daemonize yes# 设置数据库数量,默认数据库为0
databases 16# 集群相关配置
# 是否以集群模式启动
cluster-enabled yes# 集群节点回应最长时间,超过该时间被认为下线
cluster-node-timeout 15000
5. 启动服务
cd /usr/local/redis/bin
./redis-server /usr/local/redis/redis_6379/conf/redis.conf
./redis-server /usr/local/redis/redis_6380/conf/redis.conf

image

6. 注册集群节点
./redis-cli -h 192.168.0.21 -p 6379 -a 123456
cluster meet 192.168.0.21 6380
cluster meet 192.168.0.22 6379
cluster meet 192.168.0.22 6380
cluster meet 192.168.0.23 6379
cluster meet 192.168.0.23 6380

image

7. 注册主从关系
./redis-cli -h 192.168.0.21 -p 6380 -a 123456
cluster replicate #{node-id}
./redis-cli -h 192.168.0.22 -p 6380 -a 123456
cluster replicate #{node-id}
./redis-cli -h 192.168.0.23 -p 6380 -a 123456
cluster replicate #{node-id}

image

8. 分配槽位 - 在主节点分
./redis-cli -h node1 -p 6379 -a 123456 cluster addslots {0..5461}
./redis-cli -h node2 -p 6379 -a 123456 cluster addslots {5462..10922}
./redis-cli -h node3 -p 6379 -a 123456 cluster addslots {10923..16383}

image

验证

node3:6379 为主,node2:6380为从
node3:6379下线,node2:6380预期变成主
node3:6379故障恢复后,变成从节点

image
./redis-cli -h node3 -p 6379 -a 123456 shutdown # 停掉node3:6379
image
./redis-server /usr/local/redis/redis_6379/conf/redis.conf # 重新上线node3:6379
image

redis cluster相关命令

1. MOVED重定向 与 -c参数

重定向:key1槽位在node2上,正常登录node1,在node1set 会得到提示: 重定向到node2去操作。
image

-c :登录的时候带上-c参数,无论是否是集群模式,会自动帮我们进行重定向。
image

2. cluster命令

我就用了俩:cluster info 和cluster nodes, 其他的用的时候查吧

命令 描述
INFO 返回当前集群信息
MEET [] 添加一个节点至当前集群
MYID 返回当前节点集群ID
NODES 返回当前节点的集群信息
REPLICATE 将当前节点作为某一集群节点的从库
FAILOVER [FORCE
RESET [HARD
ADDSLOTS [ ...] 为当前集群节点增加一个或多个插槽位,推荐在bash shell中执行,可通过{int..int}指定多个插槽位
DELSLOTS [ ...] 为当前集群节点删除一个或多个插槽位,推荐在bash shell中执行,可通过{int..int}指定多个插槽位
FLUSHSLOTS 删除当前节点中所有的插槽信息
FORGET 从集群中删除某一节点
COUNT -FAILURE-REPORTS 返回当前集群节点的故障报告数量
COUNTKEYSINSLOT 返回某一插槽中的键的数量
GETKEYSINSLOT 返回当前节点存储在插槽中的key名称。
KEYSLOT 返回该key的哈希槽位
SAVECONFIG 保存当前集群配置,进行落盘操作
SLOTS 返回该插槽的信息

参考资料

https://www.cnblogs.com/Yunya-Cnblogs/p/14608937.html

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

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

相关文章

推荐一个Elasticsearch ES可视化客户端工具:ES-King

ES-King:开源免费,一个现代、实用的ES GUI客户端,支持多平台。 下载地址:https://github.com/Bronya0/ES-King 功能清单 详尽的集群信息:节点信息、堆内存占用、总内存占用、cpu占用、磁盘占用、网络流量、节点角色、集群健康、5分钟负载、每个节点的字段缓存、段缓存、查…

Kafka怎么配置SASL用户名密码认证

服务端配置(server.properties):# 开启SASL认证 security.protocol=SASL_PLAINTEXT sasl.mechanism=PLAIN# 配置JAAS文件路径 listeners=SASL_PLAINTEXT://localhost:9092 sasl.enabled.mechanisms=PLAIN listener.name.sasl_plaintext.plain.sasl.jaas.config=org.apache.kafk…

数据采集与融合技术第四次实践作业

gitee链接: https://gitee.com/zxbaixuexi/2024scrapy/tree/master/第四次实践 作业①: 1) 使用 Selenium 框架+ MySQL 数据库存储技术路线爬取“沪深 A 股”、“上证 A 股”、“深证 A 股”3 个板块的股票数据信息。 候选网站:东方财富网: http://quote.eastmoney.com/cen…

项目冲刺11.12

这个作业属于哪个课程 计科22级34班这个作业要求在哪里 作业要求这个作业的目标 进行为期七天的项目冲刺并记录前言 本篇博客是项目冲刺的第四篇,七篇博客的汇总如下:博客汇总第一篇博客第二篇博客第三篇博客第四篇博客第五篇博客第六篇博客第七篇博客团队简介队名 拖延是你不…

快速修改kafka的broker配置或topic配置

下载开源的kafka界面客户端KafkaKing:https://github.com/Bronya0/Kafka-King 连接后,双击broker配置,或者双击topic配置:修改好后回车保存就行。有些配置是改不了的。

mysql创建表

创建表 创建表要先选中数据库名 create table 表名(列名 类型)来进行创建,列名可以存在多个,表名和列名不可以一样,想要一样的话就要使用反引号把表名和列名引起来 列名在前面,类型在后面查看所有表 show tables查看当前数据库所有表查看指定表的结构 desc 表名;把表的特…

《会计原来这么有趣》——中级实务篇(刘海涛)

第一章:存货核算 1.1存货定义:存货是指企业在日常活动中持有以备出售的产成品或商品、处在生产过程中的在产品、在生产过程或提供劳务过程中耗用的材料或物料等,包括各类材料、在产品、半成品、产成品或库存商品以及包装物、低值易耗品、委托加工物资等。 参考(https://bai…

实验15:职责链模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解职责链模式的动机,掌握该模式的结构; 2、能够利用职责链模式解决实际问题。[实验任务一]:财务审批 某物资管理系统中物资采购需要分级审批,主任可以审批1万元及以下的采购单,部门经理可以审批5万元及以…

题解:[JOISC 2021 Day4] イベント巡り 2 (Event Hopping 2)

P7562 [JOISC 2021 Day4] イベント巡り 2 (Event Hopping 2) lxl 上课讲了这题,我听了选取答案区间的思路,恍然大雾 ,于是就有了这篇题解—— sto lxl orz !!!本题解主要详解区间选取。 前置知识:倍增策略 首先,本题的 \(L_i\)、\(R_i\) 较大,离散化即可。 另外,我个…

团队作业4——项目冲刺-2

团队作业4——项目冲刺-2信息项 内容课程名称 广工计院计科34班软工作业要求位置 作业要求作业目标 小飞棍团队对需求改进和系统设计进行讨论GitHub链接 GitHub一、团队简介队名:小飞棍队团队成员:姓名 学号罗振烘(组长) 3122004748庄崇立 3122004633李响 3121002802何昌洲…

实验14:代理模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解代理模式的动机,掌握该模式的结构; 2、能够利用代理模式解决实际问题。[实验任务一]:婚介所 婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪…