redis集群的创建安装与配置,以及维护

一、redis集群配置

port 7000

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

二、安装ruby(ruby可以充当redis客户端的角色)

yum -y install ruby ruby-devel rubygems rpm-build

gem install redis

三、创建redis集群

1、依次启动node1:7000/7001, node2:7000/7001, node3:7000/7001

[root@node1 7000]# ../src/redis-server redis.conf

2、# 必须使用IP地址不能使用主机名

src/redis-trib.rb create --replicas 1 192.168.199.238:7000 192.168.199.238:7001 \

192.168.199.134:7000 192.168.199.134:7001 192.168.199.237:7000 192.168.199.237:7001

四、启动redis集群

1、 检查

[root@node1 redis]# src/redis-cli -c -h 192.168.0.31 -p 7000 cluster nodes

ebda3f1dad0da2996df119182eab46ed7abedcd9 192.168.0.35:7001 slave 490354a9f25120ee5ae10acc681dc412864ecb03 0 1522055848174 6 connected

490354a9f25120ee5ae10acc681dc412864ecb03 192.168.0.35:7000 master - 0 1522055850183 5 connected 10923-16383

d1a11bf4cc508a11f71d9a40e0aca6c7e491a3c4 192.168.0.33:7000 master - 0 1522055847170 3 connected 5461-10922

c9b21659527f7ce2f234102c4d6b6361e270e5a8 192.168.0.31:7001 slave d1a11bf4cc508a11f71d9a40e0aca6c7e491a3c4 0 1522055849178 3 connected

34604603c5b970b98f0d8351e8811f2688a9c83e 192.168.0.31:7000 myself,master - 0 0 1 connected 0-5460

22c867aa1f70b4cc0ea5c3ca011dd1a2df7da66e 192.168.0.33:7001 slave 34604603c5b970b98f0d8351e8811f2688a9c83e 0 1522055845161 4 connected

2、测试

[root@node1 redis]# src/redis-cli -c -h 192.168.0.31 -p 7000

五、集群扩容

1、增加主节点

# 新节点:192.168.0.31:7002

# 老节点:192.168.0.31:7000

src/redis-trib.rb add-node 192.168.0.31:7002 192.168.0.31:7000

2、增加从节点

# 新节点:192.168.0.31:7002

# 老节点:192.168.0.31:7000

src/redis-trib.rb add-node --slave --master-id 5da7b4b37f4e14638d9558e66166c042b752d417 192.168.0.31:7002 192.168.0.31:7000

六、redis   重新分配redis资源即重新分配槽位

# 老节点:192.168.0.31:7000

src/redis-trib.rb reshard 192.168.0.31:7000

How many slots do you want to move (from 1 to 16384)? 1000 //设置slot数1000 

What is the receiving node ID?  03ccad2ba5dd1e062464bc7590400441fafb63f2 //新节点node id 

Please enter all the source node IDs. 

 Type 'all' to use all the nodes as source nodes for the hash slots. 

 Type 'done' once you entered all the source nodes IDs.  

Source node #1:all //表示全部节点重新洗牌 

Do you want to proceed with the proposed reshard plan (yes/no)?  yes //确认重新分

七、redis集群缩容

1、删除从节点

# 老节点:192.168.0.31:7001

src/redis-trib.rb del-node 192.168.0.31:7001 '9c240333476469e8e2c8e80b089c48f389827265' 

2、删除主节点

1. 删除从节点(注意:需要将从节点转移到其他主节点)

49ed626134079dc301f586ff4edb1670a3a42a8c 被删除主节点ID

192.168.0.31:7000> cluster replicate 49ed626134079dc301f586ff4edb1670a3a42a8c

3. 取消槽位

src/redis-trib.rb reshard 192.168.0.31:7000 // 重新分配槽位

How many slots do you want to move (from 1 to 16384)? 1000 // 被删除master的所有slot数量 

What is the receiving node ID? 5d8ef5a7fbd72ac586bef04fa6de8a88c0671052 // 接收slot的master 

Please enter all the source node IDs. 

 Type 'all' to use all the nodes as source nodes for the hash slots. 

 Type 'done' once you entered all the source nodes IDs. 

Source node #1:49ed626134079dc301f586ff4edb1670a3a42a8c  //被删除master的node-id 

Source node #2:done  

Do you want to proceed with the proposed reshard plan (yes/no)? yes // 取消slot后,reshard

3. 删除主节点

src/redis-trib.rb del-node 192.168.0.31:7000 '49ed626134079dc301f586ff4edb1670a3a42a8c'

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

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

相关文章

【SQL】根据条件分组,并根据条件取最大的这一条数据

数据,当字段A相同时,取字段B数值大的这一条数据 ABC123114223234 期望结果 ABC123234 Oracle SELECT A, B, C FROM (SELECT A, B, C,ROW_NUMBER() OVER (PARTITION BY A ORDER BY B DESC) AS rnFROM 表名 ) WHERE rn 1; MySql SELECT t1.A, t1.B,…

Redis---------实现商品秒杀业务,包括唯一ID,超卖问题,分布式锁

订单ID必须是唯一 唯一ID构成: 代码生成唯一ID: import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.tim…

Java内存中的垃圾回收是如何实现的

Java内存中的垃圾回收是通过Java虚拟机(JVM)的垃圾收集器(Garbage Collector)来实现的。垃圾收集器自动管理Java堆内存中的对象,通过识别并回收不再使用的对象来释放内存空间,从而防止内存泄漏和内存溢出等…

JAVASE相关知识补充

基础知识 类作为成员变量类型: 接口作为成员变量类型: 接口作为方法的参数或者返回值 Object类: java.lang.object 类object是类层次结构的超(根)类 每个类都是用object作为父类 所有对象包括数组都实现这个类的…

【论文阅读】Learning Texture Transformer Network for Image Super-Resolution

Learning Texture Transformer Network for Image Super-Resolution 论文地址Abstract1. 简介2.相关工作2.1单图像超分辨率2.2 Reference-based Image Super-Resolution 3. 方法3.1. Texture TransformerLearnable Texture Extractor 可学习的纹理提取器。Relevance Embedding.…

什么是binutils-arm-linux-gnueabi

2024年5月3日,周五晚上 binutils-arm-linux-gnueabi 是针对 ARM 架构的 Linux 系统开发的 GNU Binutils 工具链。Binutils 是一组用于汇编、链接和转换目标文件的工具,包括 as (汇编器)、ld (链接器)、objcopy (目标文件转换工具) 等。 binutils-arm-li…

【Nginx 开发】Nginx高可用集群

配置集群 高可用集群配置高可用集群 高可用集群 为什么需要配置Nginx集群: 在实际开发过程中Nginx也有可能宕机,如果我们能够将Nginx配置成高可用,当Nginx宕机之后,在集群中我们可以将请求转发到从Nginx服务器当中,由…

【代码随想录——数组篇】

代码随想录——数组篇 2. 二分查找3. 移除元素4. 有序数组的平方5. 长度最小的子数组6. 螺旋矩阵II 2. 二分查找 力扣题目链接 前提: 有序数组数组中无重复元素 代码: (版本一)左闭右闭区间 class Solution {public int sea…

AcWing 850. Dijkstra求最短路 II

Problem: AcWing 850. Dijkstra求最短路 II 文章目录 思路解题方法复杂度Code 思路 这是一个经典的 Dijkstra 算法问题,我们需要找到从点 1 到点 n 的最短路径。Dijkstra 算法是一种贪心算法,它总是选择当前未访问过的节点中距离最短的一个,然…

什么是Boot Loader?为什么需要Boot Loader?

2024年5月4日,周六下午 什么是Boot Loader 引导加载程序(Boot Loader)是一种软件,位于计算机系统的启动过程中,其主要功能是在系统上电后负责引导加载操作系统内核。Boot Loader通常存储在计算机系统的固化存储设备&a…

代码随想录算法训练营第14天 | 144. 二叉树的前序遍历 | 145. 二叉树的后序遍历 | 94. 二叉树的中序遍历

144. 二叉树的前序遍历 解1: 递归 void preorder(struct TreeNode* root, int *array, int *idx) {if (root ! NULL) {array[(*idx)] root->val;preorder(root->left, array, idx);preorder(root->right, array, idx);} }int* preorderTraversal(struct TreeNode* …

【代码随想录】day49

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、121. 买卖股票的最佳时机二、122.买卖股票的最佳时机II 一、121. 买卖股票的最佳时机 class Solution { public:int maxProfit(vector<int>& prices…

Qt QImageWriter类介绍

1.简介 QImageWriter 用于写入图像文件的类。它提供了将 QImage 对象保存到不同图像格式文件的功能&#xff0c;包括但不限于 PNG、JPEG、BMP 等。QImageWriter 可以将图像写入文件&#xff0c;也可以写入任何 QIODevice&#xff0c;如 QByteArray&#xff0c;这使得它非常灵活…

pytorch简单神经网络模型训练

目录 一、导入包 二、数据预处理 三、定义神经网络 四、训练模型和测试模型 五、程序入口 一、导入包 import torch import torch.nn as nn import torch.optim as optim # 导入优化器 from torchvision import datasets, transforms # 导入数据集和数据预处理库 from tor…

python中type,object,class 三者关系

type,object,class 三者关系 在python中&#xff0c;所有类的创建关系遵循&#xff1a; type -> int -> 1 type -> class -> obj例如&#xff1a; a 1 b "abc" print(type(1)) # <class int> 返回对象的类型 print(type(int)) …

基于OpenCv的图像金字塔

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…

sql-server--索引

SQL Server提供了五种索引类型&#xff0c;它们分别是 唯一索引 主键索引 聚集索引 &#xff08; Clustered Index &#xff09; 非聚集索引 &#xff08; Nonclustered Index &#xff09; 视图索引 --tb_student表的sno列创建索引 create index ix_sno on tb_student(…

【讲解如何OpenCV入门】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

需求规格说明书编制书(word原件)

1 范围 1.1 系统概述 1.2 文档概述 1.3 术语及缩略语 2 引用文档 3 需求 3.1 要求的状态和方式 3.2 系统能力需求 3.3 系统外部接口需求 3.3.1 管理接口 3.3.2 业务接口 3.4 系统内部接口需求 3.5 系统内部数据需求 3.6 适应性需求 3.7 安全性需求 3.8 保密性需…