IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> redis集群管理-5.0.14版本 -> 正文阅读

[大数据]redis集群管理-5.0.14版本

目录

00.节点启动、关闭、登录、查看集群信息、配置文件参数、动态改参数

01.创建主节点

02.添加新节点

03.手动故障转移,看07

04.升级Redis集群中的节点

05.集群扩容,添加2个节点主6385,从6386

06.迁移到redis集群

07.手动故障转移

08.集群缩容

09.节点挂掉处理

10.扩展


00.节点启动、关闭、登录、查看集群信息、配置文件参数、动态改参数

/data/redis/bin/redis-server /data/redis/conf/redis6379.conf
ps aux|grep redis

/data/redis/bin/redis-cli -a ...... -h 127.0.0.1 -p 6379 SHUTDOWN
ps -ef | grep redis-server | grep -v grep | awk '{print $2}' | xargs kill

/data/redis/bin/redis-cli -a ...... -h 127.0.0.1 -p 6379
CLUSTER nodes
CLUSTER INFO
config get maxmemory/maxclients
config SET maxmemory 6G

01.创建主节点

/data/redis/bin/redis-cli -a ...... --cluster create --cluster-replicas 0 192.168.134.143:6379 192.168.134.143:6380 192.168.134.143:6381?

--获取master-id
/data/redis/bin/redis-cli -c -a ...... -h 127.0.0.1 -p 6379 cluster nodes

ip=`ip ad|grep "10.35.2"|awk '{print $2}'|awk -F\/ '{print $1}'`
/data/redis/bin/redis-cli -a ...... --cluster check $ip:6379 ?--cluster-search-multiple-owners

[root@localhost data]# /data/redis/bin/redis-cli -c -a ...... -h 127.0.0.1 -p 6379 cluster nodes
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
0bc9e58115869b5458a0aaf474b7b9d01ac4dd6a 192.168.134.143:6381@16381 master - 0 1658993413889 3 connected 10923-16383
056ca47dc3945072b9fd28b663f1eb8b569e9cc5 192.168.134.143:6380@16380 master - 0 1658993414897 2 connected 5461-10922
12b09b0ccd152d1267bb94a6ad8d268d9e424cec 192.168.134.143:6379@16379 myself,master - 0 1658993413000 1 connected 0-5460

--为主节点添加从节点
/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6382 192.168.134.143:6379 --cluster-slave --cluster-master-id 12b09b0ccd152d1267bb94a6ad8d268d9e424cec

/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6383 192.168.134.143:6379 --cluster-slave --cluster-master-id 056ca47dc3945072b9fd28b663f1eb8b569e9cc5

/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6384 192.168.134.143:6379 --cluster-slave --cluster-master-id 0bc9e58115869b5458a0aaf474b7b9d01ac4dd6a

--登录
/data/redis/bin/redis-cli -h 127.0.0.1 -p 6379 -a ......

--测试集群的运行状况:
CLUSTER nodes
CLUSTER INFO

02.添加新节点

192.168.134.143:6385到现有集群,新节点的数据路径下确保没有.conf、.aof、.rdb文件才能重启(严格时要先停掉节点该服务,删除文件,再启动)/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6385 192.168.134.143:6379

192.168.134.143:6385 的id
6a8c075d50029d7beb67fc71c44d0eac4aa02440

--删除副本节点
/data/redis/bin/redis-cli -a ...... --cluster del-node 192.168.134.143:6379 6a8c075d50029d7beb67fc71c44d0eac4aa02440

要移除主节点,它必须为空。如果主节点不为空,则需要在之前将数据从主节点重新硬送到所有其他主节点。

03.手动故障转移,看07

CLUSTER FAILOVER

04.升级Redis集群中的节点

升级副本节点很容易,因为您只需要停止节点并使用更新版本的Redis重新启动。如果有客户机使用副本节点缩放读取,如果givenone不可用,它们应该能够重新连接到不同的副本。

升级masters有点复杂,建议的步骤是:

使用CLUSTER FAILOVER触发主服务器到其中一个副本的手动故障转移。(参见手动故障转移本文件中的章节。)
等待主机变成副本
最后,像对副本一样升级节点。
如果希望主节点成为刚升级的节点,请触发新的手动故障转移,以便将升级的节点变回主节点。
按照此过程,您应该依次升级一个节点,直到所有节点都升级为止。

05.集群扩容,添加2个节点主6385,从6386

/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6385 192.168.134.143:6379

/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6386 192.168.134.143:6379 --cluster-slave --cluster-master-id 96f15f431b2dff2fde63e94f5b4cabac0aed69ca

--重新分片集群
/data/redis/bin/redis-cli -a ...... --cluster rebalance --cluster-threshold 1 --cluster-use-empty-masters 192.168.134.143:6379

fa14516c9901a8e8d213bfc2c0c80dffc1ecec5b 192.168.134.143:6386@16386 slave 96f15f431b2dff2fde63e94f5b4cabac0aed69ca 0 1658995781000 6 connected
0bc9e58115869b5458a0aaf474b7b9d01ac4dd6a 192.168.134.143:6381@16381 master - 0 1658995781000 3 connected 12288-16383
6e1075d9556d62e7d73cdf2139b242472ce4bf81 192.168.134.143:6383@16383 slave 056ca47dc3945072b9fd28b663f1eb8b569e9cc5 0 1658995780000 2 connected
12b09b0ccd152d1267bb94a6ad8d268d9e424cec 192.168.134.143:6379@16379 myself,master - 0 1658995776000 5 connected 1365-5460
f8d7ab3de2a8316687d417ae1522077f60ed49de 192.168.134.143:6382@16382 slave 12b09b0ccd152d1267bb94a6ad8d268d9e424cec 0 1658995780000 5 connected
96f15f431b2dff2fde63e94f5b4cabac0aed69ca 192.168.134.143:6385@16385 master - 0 1658995783154 6 connected 0-1364 5461-6826 10923-12287
d92be4765051dcabe4d9c9a98af7b3614f2c929a 192.168.134.143:6384@16384 slave 0bc9e58115869b5458a0aaf474b7b9d01ac4dd6a 0 1658995782149 3 connected
056ca47dc3945072b9fd28b663f1eb8b569e9cc5 192.168.134.143:6380@16380 master - 0 1658995781144 2 connected 6827-10922

06.迁移到redis集群

可以将数据从外部实例导入到 Redis 集群,即使用redis-cli --cluster import命令

redis-cli --cluster import 10.35.2.68:6379 --cluster-from 10.35.2.87:6379 --cluster-replace

说明:外部Redis实例(10.35.2.87:6379)导入到集群中的任意一节点,倒入之后,原来集群的key变为空,导入到新集群的key会自动分片到各个mater节点的slot

--cluster-replace 如果集群(10.35.2.68:6379)中存在外部redis实例(10.35.2.87:6379)的key,则会覆盖掉(10.35.2.68:6379)的value

该命令将正在运行的实例的所有键(从源实例中删除键)移动到指定的预先存在的 Redis 集群。但是请注意,如果您使用 Redis 2.8 实例作为源实例,操作可能会很慢,因为 2.8 没有实现迁移连接缓存,因此您可能希望在执行此类操作之前使用 Redis 3.x 版本重新启动源实例(在进行这个操作之前,将redis的版本升级到Redis 3.x版本)。

07.手动故障转移

该命令必须在要进行故障转移master的任意slave节点上执行,执行后master和slave身份自动互换
cluster failover

[root@localhost data]# /data/redis/bin/redis-cli -h 127.0.0.1 -p 6382 -a ......
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6382>?
127.0.0.1:6382> ping
PONG
127.0.0.1:6382>?
127.0.0.1:6382> CLUSTER nodes
d92be4765051dcabe4d9c9a98af7b3614f2c929a 192.168.134.143:6384@16384 slave 0bc9e58115869b5458a0aaf474b7b9d01ac4dd6a 0 1658994296073 3 connected
f8d7ab3de2a8316687d417ae1522077f60ed49de 192.168.134.143:6382@16382 myself,slave 12b09b0ccd152d1267bb94a6ad8d268d9e424cec 0 1658994292000 0 connected
0bc9e58115869b5458a0aaf474b7b9d01ac4dd6a 192.168.134.143:6381@16381 master - 0 1658994295000 3 connected 10923-16383
6e1075d9556d62e7d73cdf2139b242472ce4bf81 192.168.134.143:6383@16383 slave 056ca47dc3945072b9fd28b663f1eb8b569e9cc5 0 1658994295000 2 connected
056ca47dc3945072b9fd28b663f1eb8b569e9cc5 192.168.134.143:6380@16380 master - 0 1658994295067 2 connected 5461-10922
12b09b0ccd152d1267bb94a6ad8d268d9e424cec 192.168.134.143:6379@16379 master - 0 1658994295000 1 connected 0-5460
127.0.0.1:6382>?
127.0.0.1:6382>?
127.0.0.1:6382> cluster failover
OK
127.0.0.1:6382>?
127.0.0.1:6382> CLUSTER nodes
d92be4765051dcabe4d9c9a98af7b3614f2c929a 192.168.134.143:6384@16384 slave 0bc9e58115869b5458a0aaf474b7b9d01ac4dd6a 0 1658994315000 3 connected
f8d7ab3de2a8316687d417ae1522077f60ed49de 192.168.134.143:6382@16382 myself,master - 0 1658994316000 4 connected 0-5460
0bc9e58115869b5458a0aaf474b7b9d01ac4dd6a 192.168.134.143:6381@16381 master - 0 1658994313000 3 connected 10923-16383
6e1075d9556d62e7d73cdf2139b242472ce4bf81 192.168.134.143:6383@16383 slave 056ca47dc3945072b9fd28b663f1eb8b569e9cc5 0 1658994314000 2 connected
056ca47dc3945072b9fd28b663f1eb8b569e9cc5 192.168.134.143:6380@16380 master - 0 1658994316225 2 connected 5461-10922
12b09b0ccd152d1267bb94a6ad8d268d9e424cec 192.168.134.143:6379@16379 slave f8d7ab3de2a8316687d417ae1522077f60ed49de 0 1658994315217 4 connected
127.0.0.1:6382>?

08.集群缩容

要求:删除master节点A及此slave节点A1
操作步骤:
1)先删除slave A1节点(此操作理论上,应该删除掉A节点所有的slave节点);参考3、删除节点

2)将A上的slot重新分片到其他的master节点;参考05集群扩容中的第四步骤(重新分片集群)

操作完成以后会有如下报错,没有关系:

?? ?Node 127.0.0.1:6381 replied with error:

?? ?ERR Please use SETSLOT only with masters.

3)此时查看A节点,A已经变为了接受分片槽节点的slave节点

4)删除A节点 ;参考3、删除节点

09.节点挂掉处理

从节点挂掉:
能重启且数据目录下文件没有丢失就自动加入集群;
若目录下的文件丢失,重启后该节点状态有问题,处理思路:先删除再指定主节点
cluster forget cdc33acca6797723b3fcb3c2386030b0759abe06

/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6386 192.168.134.143:6379 --cluster-slave --cluster-master-id 33efb30b242b28509c0b8f85e791aa6af17d9ef0

主节点挂掉:slave会转为新主
能重启且数据目录下文件没有丢失就自动加入集群;
若目录下的文件丢失,重启后该节点状态有问题,处理思路同上。

若同一主从挂掉:能重启且数据目录下文件没有丢失就自动加入集群;
若目录下的文件丢失,重启后该节点状态有问题,处理思路:
cluster forget feba58aa118956ddebc1dd162276c5e4c0c18d7d
cluster forget cdc33acca6797723b3fcb3c2386030b0759abe06

/data/redis/bin/redis-cli -a ...... --cluster fix 192.168.134.143:6379

/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6385 192.168.134.143:6379

/data/redis/bin/redis-cli -a ...... --cluster add-node 192.168.134.143:6386 192.168.134.143:6379 --cluster-slave --cluster-master-id 96f15f431b2dff2fde63e94f5b4cabac0aed69ca

/data/redis/bin/redis-cli -a ...... --cluster rebalance --cluster-threshold 1 --cluster-use-empty-masters 192.168.134.143:6379

10.扩展

redis-cli --cluster reshard <host>:<port> --cluster-from <node-id> --cluster-to <node-id> --cluster-slots <number of slots> --cluster-yes

--cluster-yes选项指示集群管理器对命令的提示自动回答“是”,允许它以非交互模式运行。请注意,也可以通过设置REDISCLI_CLUSTER_是环境变量

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 10:50:33  更:2022-08-06 10:53:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 0:31:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码