Redis集群管理攻略:Redis Trib命令实战教程

创始人
2024-12-15 15:35:54
0 次浏览
0 评论

Redis集群操作

没有槽位时直接删除

(5)学习如何使用redis-trib命令:添加两个节点docker-compose.yaml

1创建:创建集群环境host1:port1...hostN:portN(集群中主从节点的比例)2call:可以执行redis命令3add-node:向集群添加节点添加第一个参数是新节点的ip:port,第二个参数是集群中现有的节点。
ip:port4del-node[host:portnode_id]:删除节点5reshard:重新分片6check[hosts:port]:检查集群状态

第1步:使用add-node命令。
−绿色为新节点,红色为已知现有节点

输出如下:

第2步:检查集群状态:

注意:以后当节点添加成功时。
新添加的节点不会有任何数据,因为还没有分配槽(哈希槽)。
新节点的槽位需要手动分配。

第一步:使用redis-trib命令查找集群中任意master节点(红色状态代表集群中任意master节点)并重新分发。

输出如下:

1提示1:您可以自行设置要移动到新图块的图块数量,例如200。
2两个提示:需要移动200个槽到该节点(需要指定节点ID),下一点是所有主节点响应槽的数量(700170027003)(总共200个槽到新指定节点,以及将打印执行分片的命令。
)3提示3-分片任务输入yes进行确认。
到底,我们再看一下集群情况:

如上图所示,我们的7007现在可以读取7007上的数据;有一个可以写字的洞。
至此我们的7007已经添加到集群中,并且是主节点(master)。

第1步:我们还需要运行add-node命令:

出现提示后,安装成功,我们继续查看集群的状态:

如图。
它仍然是主节点,没有分配插槽。

第二步:需要运行sync命令设置当前节点(从节点)的主节点ID。
第一的,需要登录新安装的7008节点的客户端,然后将当前7008(从)节点设置为主节点来运行并设置(这里使用之前创建的7007主节点,红色表示节点ID)

我们继续查看集群当前状态如下图:7008在主节点7007下安装成功。
至此我们已经成功安装了从节点。

(9)我们可以读到,可以写您可以运行集群来检查是否没有(当然)。
(10)现在我们尝试删除节点(7008slave)。
步骤1:删除从节点7008;输入del-node命令;指定要删除的节点ip和端口;和节点id(红色是7008节点id)

输出如下:

第二步:再次发现7008slave节点已经被成功移除,如下图所示。
当前节点的服务进程也会被销毁。
可以使用ps命令查看当前服务(ps-el|grepredis),是7008从节点,即7008从节点。

(11)最后,我们尝试删除之前安装的主节点7007。
此时必须先删除7007,因为主节点已经分配了槽位。
在其他可用的主节点上;然后删除节点,否则,将会发生数据丢失。

第一步:删除7007(主)节点之前,我们需要将其所有数据(槽位)移动到其他节点(目前只能暂时将master的数据移动到一个节点,无法做平均分配功能。

输出如下:

至此我们已成功将7007master的数据迁移到7001。
您可以查看当前批次状态,如下所示。
你会发现7007下面没有数据(slot)槽,证明迁移成功。

好的完成了。

docker配置redis主从,哨兵sentinel

注意:使用Docker自行安装,配置Redis一主两服务器,并使用看门狗配置最佳可用性。
当slave的master失效时,slave立即晋升为master。

主从模式简介:在主从复制中,数据库分为两种:主数据库(master)和从数据库(slave)。

Heril复制的特点包括:主数据库将支持读写操作,数据变化会自动与数据库服务器的读写操作同步。
数据库服务器主要用于从主库读取数据并接收同步数据。
一个主人可以有多个奴隶,但一个奴隶只能听命于一个主人。
暂停服务器不会影响其他服务器的读取,停止后对Master数据的读写操作会同步。
master挂起后,slave节点并不会被slave本身提升为master。

工作机制:当slave启动时,会主动向master发送SYNC命令。
当这个被接受时,master保存快照(RDB持久化)并在后台,然后将快照文件和命令的执行发送到服务器。
一旦接收到,服务器就会加载快照文件并执行单元命令。
复制初始化后,Master收到的写命令会同步发送到Slave,以保证数据的一致性。

准备和配置:启动并安装Redis。

设置配置目录,如果不存在则创建它。
单击并拖动redis.conf文件并为配置复制三份。

配置文件修改如下:修改redis-6379.conf允许远程连接、关闭安全模式、开启持久化、指定日志文件。
修改redis-6380.conf和redis-6381.conf,以只读方式配置主IP配置,允许远程连接,授予持久化,指定日志文件。

启动容器:使用-d、--name、-p、-v参数启动三个容器,分别是主服务器(return-6379)和两个从服务器(return-6380,return-第6381章)

测试容器启动成功,点击查看是否出现容器名称。

配置redis-6380和redis-6381为主服务器。

测试主服务器使用三个客户端窗口进行服务器配置,主服务器设置密钥值,从服务器获取验证密钥值。

watch的配置(watch模式):watch用于监控运行中的Redis集群的状态。
特点包括:警察模式基于从属模式。
当主服务器出现故障时,警察从服务器中选择一个新的主服务器并更改配置文件。
当master释放slave后,slave就变成了slave。
一个警察集群可以管理多台Redis服务器,但最好不要部署在同一台机器上。
Ping工作机制:按频率发送PING命令来监控模型。

使用Docker启动Redis服务器,配置服务器的网络连接和集群监控,并测试行为。

观察模式说明:启动三台Redis服务器,作为观察者进行监控,并配置与主从关系。

测试步骤:查看警察权限包的状态文件。
阻止主人持有奴隶以及奴隶的主人提升奴隶。
检查slave是否已经成为slave的新master。

redis集群在线迁移

在线迁移Redis集群时,首先需要在新节点上部署Redis实例。
请注意,此实例只能部署为单节点实例,而不是集群。
旧环境中的操作必须与新环境保持一致。
将新节点Redis添加到旧集群中,并确保其为集群的主节点。
然后新节点作为从节点添加到集群中。
添加节点后,使用命令查看主从节点信息以及集群状态。
使用“redis-cli-p7000-a'password'clusternodes”命令获取集群节点列表,并验证集群状态是否显示“ok”。
检查集群中的主节点,使用`redis-cli-p7000-a'password'clusternodes|grepmaster`命令查看并验证主节点信息。
接下来执行集群迁移操作。
目标是将所有槽迁移到新节点node_id:614272e21df1cbbcda117f277ff7baa075b3d15e。
确保插槽在集群中的其余主节点之间均匀分布。
通过检查节点状态和集群信息来验证迁移是否成功。
迁移完成后,小心地从集群中删除所有旧节点信息,首先删除从节点,然后删除主节点。
删除节点前,请确保使用“del-node”命令后旧环境中的Redis进程可以正常关闭,以避免集群故障。
最后,检查集群可用性和数据完整性,以确保迁移操作不会对数据或性能产生负面影响。
热门文章
1
SQL2000数据库备份压缩技巧:优化空... 怎么将SQL2000中的较大的备份数据库压缩变小更改数据库属性-选项-恢复模型很...

2
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

3
SQL字符串处理技巧:单引号使用与转义标... SQL语句中,字符串类型的值均使用什么符号标明?单引号如果字符串内有单引号,请小...

4
Windows环境下Redis安装指南与... redis安装windowsredis基本简介与安装安装Redis首先需要获取安...

5
深度解析:Redis性能优势与局限性,助... redis有哪些优缺点?Redis的全称是RemoteDictionary.Se...

6
深入解析:MySQL数据库的特性与应用 mysql是什么MySQL是一个关系数据库管理系统。MySQL是一个开源关系数据...

7
MySQL命令行操作指南:轻松启动和登录... 用命令行方式启动和登录mysql服务的方法1.启动MySQL服务1打开命令行窗口...

8
Linux Redis后台启动教程:配置... linux怎么启动redis1、首先,为了管理方便,将Redis文件中的conf...

9
MySQL浮点数与Decimal类型详解... MySQL中的float和decimal类型有什么区别小数类型可以准确地表示非常...

10
C语言实现输入10个整数并找出最大最小值... C语言从键盘输入任意的10个整数,从中找出最大值和最小值并输出代码:#inclu...