文章目录
- 🔊博主介绍
- 🥤本文内容
- 使用宝塔面板搭建
- 集群规划
- 配置
- 验证
- 使用docker搭建
- 使用脚本搭建
- 规划
- 防火墙端口
- 配置脚本
- redis.conf配置文件
- 执行过程
- 📢文章总结
- 📥博主目标
🔊博主介绍
🌟我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作者、产品软文专业写手、技术文章评审老师、问卷调查设计师、个人社区创始人、开源项目贡献者。🌎跑过十五公里、🚀徒步爬过衡山、🔥有过三个月减肥20斤的经历、是个喜欢躺平的狠人。
📕拥有多年一线研发和团队管理经验,研究过主流框架的底层源码(Spring、SpringBoot、Spring MVC、SpringCould、Mybatis、Dubbo、Zookeeper),消息中间件底层架构原理(RabbitMQ、RockerMQ、Kafka)、Redis缓存、MySQL关系型数据库、 ElasticSearch全文搜索、MongoDB非关系型数据库、Apache ShardingSphere分库分表读写分离、设计模式、领域驱动DDD、Kubernetes容器编排等。
📙有过从0到1的项目高并发项目开发与管理经验,对JVM调优、MySQL调优、Redis调优 、ElasticSearch调优、消息中间件调优、系统架构调优都有着比较全面的实战经验。
📘有过云端搭建服务器环境,自动化部署CI/CD,弹性伸缩扩容服务器(最高200台),了解过秒级部署(阿里云的ACK和华为云的云容器引擎CCE)流程,能独立开发和部署整个后端服务,有过分库分表的实战经验。
🎥经过多年在CSDN创作上千篇文章的经验积累,我已经拥有了不错的写作技巧,与清华大学出版社签下了四本书籍的合约,并将陆续在明年出版。这些书籍包括了基础篇、进阶篇、架构篇的📌《Java项目实战—深入理解大型互联网企业通用技术》📌,以及📚《解密程序员的思维密码–沟通、演讲、思考的实践》📚。具体出版计划会根据实际情况进行调整,希望各位读者朋友能够多多支持!
文章目录
- 🔊博主介绍
- 🥤本文内容
- 使用宝塔面板搭建
- 集群规划
- 配置
- 验证
- 使用docker搭建
- 使用脚本搭建
- 规划
- 防火墙端口
- 配置脚本
- redis.conf配置文件
- 执行过程
- 📢文章总结
- 📥博主目标
🌾阅读前,快速浏览目录和章节概览可帮助了解文章结构、内容和作者的重点。了解自己希望从中获得什么样的知识或经验是非常重要的。建议在阅读时做笔记、思考问题、自我提问,以加深理解和吸收知识。
💡在这个美好的时刻,本人不再啰嗦废话,现在毫不拖延地进入文章所要讨论的主题。接下来,我将为大家呈现正文内容。
🥤本文内容
使用宝塔面板搭建
集群规划
使用CentOS7进行操作,Linux系统,配置为2个处理器核心,4个线程,8GB内存和100GB磁盘存储,所有计算机都首先进行YUM更新,修改每台计算机的固定IP地址,然后安装宝塔面板,在宝塔面板的软件商店中安装Redis,并开放端口6379(Redis默认端口)。
IP地址布局:
主节点1(Master1):192.168.80.101
主节点2(Master2):192.168.80.102
主节点3(Master3):192.168.80.103
从节点1(Slave1):192.168.80.111
从节点2(Slave2):192.168.80.112
从节点3(Slave3):192.168.80.113
配置
在Redis 6.0中,你可以使用server_cpulist、bio_cpulist、aof_rewrite_cpulist和bgsave_cpulist等配置项来指定Redis的不同进程或线程应该绑定到哪些CPU内核上运行。你需要根据你的服务器硬件和性能需求来设置这些参数。例如,如果你的服务器有8个CPU内核,并且你希望Redis进程和I/O线程在不同的内核上运行,你可以像下面示例那样配置它们。
- server_cpulist:RedisServer和IO线程绑定到CPU内核
- bio_cpulist:后台子线程绑定到CPU内核
- aof_rewrite_cpulist:后台AOF rewrite进程绑定到CPU内核
- bgsave_cpulist:后台RDB进程绑定到CPU内核
这可以帮助你优化Redis的性能,特别是当你有多个CPU内核,并且希望将不同类型的操作分散到不同的内核上时。以下是一个redis.conf配置文件的示例,展示了如何设置这些参数:
# Redis配置文件示例
# 绑定到所有网络接口
bind 0.0.0.0
# 保护模式设置为no,这样Redis就可以接受来自任何主机的连接
protected-mode no
# Redis 集群节点监听的端口
port PORT
# TCP backlog的数量,默认是1500,在高并发环境下你可能需要增加这个值。同时需要编辑sudo nano /etc/sysctl.conf文件,添加或者编辑net.core.somaxconn = 1500,在 nano 编辑器中,按 Ctrl + O(这是“O”字母,不是数字零)。这将会提示你保存文件。如果文件是第一次创建或之前没有被修改过,它会询问你文件名,此时你可以直接按 Enter 键确认使用当前的文件名。如果文件已经被修改过,它会直接保存更改。保存文件后,按 Ctrl + X。这将会退出 nano 编辑器并返回到终端。否则会出现提示 TCP 的 backlog 设置(1500)不能强制执行,因为 /proc/sys/net/core/somaxconn 的值被设置为更低的 128。/proc/sys/net/core/somaxconn 是一个内核参数,它定义了系统中每一个端口上排队的最大 TCP 连接数。sudo sysctl -p
tcp-backlog 1500
# 开启集群模式
cluster-enabled yes
# 超时时间,超时则认为master宕机,随后主备切换。单位是毫秒
cluster-node-timeout 5000
# 集群配置文件的路径,Redis 集群节点会自动创建和更新这个文件
cluster-config-file nodes-PORT.conf
#集群各节点IP地址,记得修改为你的ip地址
cluster-announce-ip REDIS_CLUSTER_IP
#集群节点映射端口
cluster-announce-port PORT
#集群总线端口
cluster-announce-bus-port 1PORT
# TCP 后台线程和I/O线程:如果启用了 TCP 后台线程(io-threads-do-reads)或 I/O 线程(io-threads),确保为这些线程配置了正确的 CPU 内核列表(server_cpulist、bio_cpulist 等)。
io-threads-do-reads yes
io-threads 4
# Redis Server绑定到的CPU内核列表,这里绑定到CPU 0和1
server_cpulist 0-1
# 后台I/O线程绑定到的CPU内核列表,这里绑定到CPU 2和3
bio_cpulist 2-3
# AOF重写进程绑定到的CPU内核列表,这里绑定到CPU 4
aof_rewrite_cpulist 4
# RDB持久化进程绑定到的CPU内核列表,这里绑定到CPU 5
bgsave_cpulist 5
# 启用AOF持久化
appendonly yes
# AOF文件名称
appendfilename "appendonly.aof"
# appendonly 文件同步策略,always 表示每个写命令都立即同步,everysec 表示每秒同步一次,no 表示由操作系统决定何时同步
appendfsync everysec
# 密码设置
requirepass admin
# Redis集群启用了密码验证,那么除了在每个节点的配置文件中设置requirepass之外,还需要设置masterauth
masterauth admin
# 禁用 RDB 快照持久化,因为集群模式下有节点复制功能
save ""
# 禁用 AOF 重写
auto-aof-rewrite-percentage 0
auto-aof-rewrite-min-size 0
这些参数的具体使用可能会因Redis版本的不同而有所变化,所以请确保查阅你正在使用的Redis版本的官方文档以获取最准确的信息。
在配置完成后,你需要重启Redis服务来使新的配置生效。
验证
验证是否启动成功
ps -ef | grep redis
查看版本
redis-cli --version
redis5.0以上集群创建方式改为了C编写的redis-cli创建,创建集群,–cluster-replicas 1指定从库数量1,创建顺序三主-三从。即主-主-主-从-从-从。如果redis设置了密码,则创建集群时需要添加密码信息 -a 密码。在任意节点上执行以下命令:
redis-cli -a admin --cluster create 192.168.80.101:6371 192.168.80.102:6372 192.168.80.103:6373 192.168.80.111:6381 192.168.80.112:6382 192.168.80.113:6383 --cluster-replicas 1
确认集群配置信息,确认无误则输入 yes 并按回车。
[root@master1 redis]# redis-cli -a admin --cluster create 192.168.80.101:6371 192.168.80.102:6372 192.168.80.103:6373 192.168.80.111:6381 192.168.80.112:6382 192.168.80.113:6383 --cluster-replicas 1
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.80.112:6382 to 192.168.80.101:6371
Adding replica 192.168.80.113:6383 to 192.168.80.102:6372
Adding replica 192.168.80.111:6381 to 192.168.80.103:6373
M: e6e0dd6a4e109660df421b4bef93f4f72991619c 192.168.80.101:6371slots:[0-5460] (5461 slots) master
M: 5520b535a6e9adc9424c6bd35ccff689a7f9c18a 192.168.80.102:6372slots:[5461-10922] (5462 slots) master
M: ea32e9db2b4a9b16e509ecb6a2235abb7a13cd0c 192.168.80.103:6373slots:[10923-16383] (5461 slots) master
S: bb78f4547103f6e1bed1482a5ee8204c4c257f81 192.168.80.111:6381replicates ea32e9db2b4a9b16e509ecb6a2235abb7a13cd0c
S: 975f23baca9ccc541b16cab916d66efa7d1b6fc2 192.168.80.112:6382replicates e6e0dd6a4e109660df421b4bef93f4f72991619c
S: 559528309e92929364623c58208e268c73933d9c 192.168.80.113:6383replicates 5520b535a6e9adc9424c6bd35ccff689a7f9c18a
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
检查集群:
redis-cli -a admin --cluster check 192.168.80.101:6379
查看集群信息:
redis-cli -a admin -h 192.168.80.101 -p 6379 -c
-a Redis密码
-c表示集群模式,指定IP和端口
cluster info
查看集群节点列表
cluster nodes
使用docker搭建
在安装好docker之后,直接在不同机器上执行以下命令(节点1):
docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-node-1:/data redis:7.2.4 --cluster-enabled yes --appendonly yes --port 6379
这种方式启动少了很多配置,单机可以怎么弄,集群不建议
使用脚本搭建
规划
三台服务器,每台服务器部署6个Redis实例,累计形成一个18个节点的Redis大集群。这意味着服务器的硬件资源不能太小,最少都是8核心8GB以上的配置,太低可能会出问题。
防火墙端口
在配置Redis集群时,需要开放两类端口:
- 客户端访问端口:这是Redis节点用于与客户端进行交互的端口。在默认情况下,Redis使用6379作为这个端口,但你可以根据需要进行修改。在配置文件中,这个端口通常被设置为port配置项的值。
- 集群总线端口:这是Redis集群节点之间用于通信和数据交换的端口。这个端口通常是客户端访问端口加10000。例如,如果客户端访问端口是6379,那么集群总线端口就是16379。在配置文件中,这个端口没有直接的配置项,但它是基于port配置项的值自动计算的。
因此,在配置Redis集群时,你需要确保你的防火墙允许通过这两类端口进行通信。对于每个Redis节点,都需要开放相应的客户端访问端口和集群总线端口。例如,如果你有三个Redis节点,分别使用6379、6380和6381作为客户端访问端口,那么你需要开放的端口就是6379、6380、6381以及对应的集群总线端口16379、16380、16381。
请注意,这些端口只是默认的,你可以根据你的需要进行修改。但是,在修改端口后,你需要确保Redis配置文件中的port配置项和客户端的连接字符串都使用了正确的端口号。
配置脚本
执行编写脚本docker-redis-cluster.sh:
vim docker-redis-cluster.sh
#!/bin/bash
# 循环执行6次
for i in $(seq 6)
do# 设置端口号PORT=637$i # 获取当前主机的IP地址REDIS_CLUSTER_IP=$(hostname -I | awk '{print $1}') # 设置配置文件路径CONFIG_FILE="/opt/software/rediscluster/conf/redis-$i.conf" # 通过sed命令替换模板文件中的占位符,生成实际的配置文件sed "s/PORT/${PORT}/g;s/REDIS_CLUSTER_IP/${REDIS_CLUSTER_IP}/g;" /opt/software/rediscluster/conf/redis.conf > "$CONFIG_FILE" # 使用docker运行Redis容器,并挂载配置文件和数据目录docker run -d --name redis-node-$i --restart=unless-stopped --net host --privileged=true -v /opt/software/rediscluster/node/redis-node-$i:/data -v "$CONFIG_FILE":/etc/redis/redis.conf redis:7.2.4 redis-server /etc/redis/redis.conf
done
redis.conf配置文件
# Redis配置文件示例
# 绑定到所有网络接口
bind 0.0.0.0
# 保护模式设置为no,这样Redis就可以接受来自任何主机的连接
protected-mode no
# Redis 集群节点监听的端口
port PORT
# TCP backlog的数量,默认是1500,在高并发环境下你可能需要增加这个值。同时需要编辑sudo nano /etc/sysctl.conf文件,添加或者编辑net.core.somaxconn = 1500,在 nano 编辑器中,按 Ctrl + O(这是“O”字母,不是数字零)。这将会提示你保存文件。如果文件是第一次创建或之前没有被修改过,它会询问你文件名,此时你可以直接按 Enter 键确认使用当前的文件名。如果文件已经被修改过,它会直接保存更改。保存文件后,按 Ctrl + X。这将会退出 nano 编辑器并返回到终端。否则会出现提示 TCP 的 backlog 设置(1500)不能强制执行,因为 /proc/sys/net/core/somaxconn 的值被设置为更低的 128。/proc/sys/net/core/somaxconn 是一个内核参数,它定义了系统中每一个端口上排队的最大 TCP 连接数。sudo sysctl -p
tcp-backlog 1500
# 开启集群模式
cluster-enabled yes
# 超时时间,超时则认为master宕机,随后主备切换。单位是毫秒
cluster-node-timeout 5000
# 集群配置文件的路径,Redis 集群节点会自动创建和更新这个文件
cluster-config-file nodes-PORT.conf
#集群各节点IP地址,记得修改为你的ip地址
cluster-announce-ip REDIS_CLUSTER_IP
#集群节点映射端口
cluster-announce-port PORT
#集群总线端口
cluster-announce-bus-port 1PORT
# TCP 后台线程和I/O线程:如果启用了 TCP 后台线程(io-threads-do-reads)或 I/O 线程(io-threads),确保为这些线程配置了正确的 CPU 内核列表(server_cpulist、bio_cpulist 等)。
io-threads-do-reads yes
io-threads 4
# Redis Server绑定到的CPU内核列表,这里绑定到CPU 0和1
server_cpulist 0-1
# 后台I/O线程绑定到的CPU内核列表,这里绑定到CPU 2和3
bio_cpulist 2-3
# AOF重写进程绑定到的CPU内核列表,这里绑定到CPU 4
aof_rewrite_cpulist 4
# RDB持久化进程绑定到的CPU内核列表,这里绑定到CPU 5
bgsave_cpulist 5
# 启用AOF持久化
appendonly yes
# AOF文件名称
appendfilename "appendonly.aof"
# appendonly 文件同步策略,always 表示每个写命令都立即同步,everysec 表示每秒同步一次,no 表示由操作系统决定何时同步
appendfsync everysec
# 密码设置
requirepass admin
# Redis集群启用了密码验证,那么除了在每个节点的配置文件中设置requirepass之外,还需要设置masterauth
masterauth admin
# 禁用 RDB 快照持久化,因为集群模式下有节点复制功能
save ""
# 禁用 AOF 重写
auto-aof-rewrite-percentage 0
auto-aof-rewrite-min-size 0
执行过程
执行以下命令运行脚本:
sh docker_redis6.sh
docker exec -it redis-node-1 bash
redis-cli -a admin --cluster create 192.168.80.101:6371 192.168.80.101:6372 192.168.80.101:6373 192.168.80.101:6374 192.168.80.101:6375 192.168.80.101:6376 192.168.80.102:6371 192.168.80.102:6372 192.168.80.102:6373 192.168.80.102:6374 192.168.80.102:6375 192.168.80.102:6376 192.168.80.103:6371 192.168.80.103:6372 192.168.80.103:6373 192.168.80.103:6374 192.168.80.103:6375 192.168.80.103:6376 --cluster-replicas 1
redis-cli -p 6371 -a admin
cluster info
cluster nodes
如果需要停止删除所有容器并移除节点信息,请执行以下命令:
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) && rm -rf node/
操作日志如下:
[root@node3 rediscluster]# sh docker-redis-cluster.sh
2ddafd3e91c676a4884536b250712b17002027b30bc184b491701a474c0ba9a9
c4ff49c66a1824c6089a338bb8acdf86ce339e29e5155b549d1c00965e12b0ed
530daa9ff0d0b68176b77617ad72282e518862a3dadda021ca948b7aa13f1e16
07effb9132ab8d7899f51ec30ec1a108f130dc103a00a1e4d211b744a960d047
2f241530e2951b4c685c3c4e910c461c98d1b23ba0b88aae238b4af1ee440210
33ff2eed2ae65a41c409985465e9b5a7c0b90ae9d614dff13cb63e4e715aa447
[root@node3 rediscluster]# docker exec -it redis-node-1 bash
root@node3:/data# redis-cli -a admin --cluster create 192.168.80.101:6371 192.168.80.101:6372 192.168.80.101:6373 192.168.80.101:6374 192.168.80.101:6375 192.168.80.101:6376 192.168.80.102:6371 192.168.80.102:6372 192.168.80.102:6373 192.168.80.102:6374 192.168.80.102:6375 192.168.80.102:6376 192.168.80.103:6371 192.168.80.103:6372 192.168.80.103:6373 192.168.80.103:6374 192.168.80.103:6375 192.168.80.103:6376 --cluster-replicas 1
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Performing hash slots allocation on 18 nodes...
Master[0] -> Slots 0 - 1819
Master[1] -> Slots 1820 - 3640
Master[2] -> Slots 3641 - 5460
Master[3] -> Slots 5461 - 7281
Master[4] -> Slots 7282 - 9101
Master[5] -> Slots 9102 - 10922
Master[6] -> Slots 10923 - 12742
Master[7] -> Slots 12743 - 14563
Master[8] -> Slots 14564 - 16383
Adding replica 192.168.80.102:6374 to 192.168.80.101:6371
Adding replica 192.168.80.103:6374 to 192.168.80.102:6371
Adding replica 192.168.80.101:6375 to 192.168.80.103:6371
Adding replica 192.168.80.102:6375 to 192.168.80.101:6372
Adding replica 192.168.80.103:6375 to 192.168.80.102:6372
Adding replica 192.168.80.101:6376 to 192.168.80.103:6372
Adding replica 192.168.80.102:6376 to 192.168.80.101:6373
Adding replica 192.168.80.103:6376 to 192.168.80.102:6373
Adding replica 192.168.80.101:6374 to 192.168.80.103:6373
M: 0c2ce94d99291b55f181867991f9e39aa2690301 192.168.80.101:6371slots:[0-1819] (1820 slots) master
M: dc610488eb49a1d53b02f246171ca792482600ee 192.168.80.101:6372slots:[5461-7281] (1821 slots) master
M: fc901fa4cb00cba1b22beae6114f6c45898f1f44 192.168.80.101:6373slots:[10923-12742] (1820 slots) master
S: 668179a19a8c85c74b8f04456b25e7a844757f82 192.168.80.101:6374replicates e2179f84bb47afa517b793bf95aa755fe72f3dae
S: bda761bbb7bababb19d7a85a99f56782e30c03b6 192.168.80.101:6375replicates ba00470e7d33e2b677d3dab1fd2d1d95af03fa53
S: 9f5aeb9230e3fa7fb86b75a1ab9a07b8801e52c7 192.168.80.101:6376replicates 2930c5a669a3378f6abad869f03d2f51dda26642
M: c37f388dd0a0ff29cfbf9936a671565f77444311 192.168.80.102:6371slots:[1820-3640] (1821 slots) master
M: 7e711ab35b67994b0ef5a5d12ad63e217a44e644 192.168.80.102:6372slots:[7282-9101] (1820 slots) master
M: 54f8ca5d4e7f4e40798e17a49f21c915c51f95c2 192.168.80.102:6373slots:[12743-14563] (1821 slots) master
S: 90452b7335ded535fe3b72ebb1d7e83df3962abd 192.168.80.102:6374replicates 0c2ce94d99291b55f181867991f9e39aa2690301
S: c30f6ed1b91580aea9b89bafe36b4393dffdd549 192.168.80.102:6375replicates dc610488eb49a1d53b02f246171ca792482600ee
S: 9be6338fcd653b7fd632a474c2107f93a1aa6852 192.168.80.102:6376replicates fc901fa4cb00cba1b22beae6114f6c45898f1f44
M: ba00470e7d33e2b677d3dab1fd2d1d95af03fa53 192.168.80.103:6371slots:[3641-5460] (1820 slots) master
M: 2930c5a669a3378f6abad869f03d2f51dda26642 192.168.80.103:6372slots:[9102-10922] (1821 slots) master
M: e2179f84bb47afa517b793bf95aa755fe72f3dae 192.168.80.103:6373slots:[14564-16383] (1820 slots) master
S: 5a8a30fd89c1d00ddf8a5700c523d1fab9663071 192.168.80.103:6374replicates c37f388dd0a0ff29cfbf9936a671565f77444311
S: afbd41e97fef798f6e87d6d2a0e76433570eae6e 192.168.80.103:6375replicates 7e711ab35b67994b0ef5a5d12ad63e217a44e644
S: ddee24135bee2cad01c24a2aa473a50ece55f55b 192.168.80.103:6376replicates 54f8ca5d4e7f4e40798e17a49f21c915c51f95c2
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
.....
>>> Performing Cluster Check (using node 192.168.80.101:6371)
M: 0c2ce94d99291b55f181867991f9e39aa2690301 192.168.80.101:6371slots:[0-1819] (1820 slots) master1 additional replica(s)
M: e2179f84bb47afa517b793bf95aa755fe72f3dae 192.168.80.103:6373slots:[14564-16383] (1820 slots) master1 additional replica(s)
S: afbd41e97fef798f6e87d6d2a0e76433570eae6e 192.168.80.103:6375slots: (0 slots) slavereplicates 7e711ab35b67994b0ef5a5d12ad63e217a44e644
S: bda761bbb7bababb19d7a85a99f56782e30c03b6 192.168.80.101:6375slots: (0 slots) slavereplicates ba00470e7d33e2b677d3dab1fd2d1d95af03fa53
S: 668179a19a8c85c74b8f04456b25e7a844757f82 192.168.80.101:6374slots: (0 slots) slavereplicates e2179f84bb47afa517b793bf95aa755fe72f3dae
S: 9f5aeb9230e3fa7fb86b75a1ab9a07b8801e52c7 192.168.80.101:6376slots: (0 slots) slavereplicates 2930c5a669a3378f6abad869f03d2f51dda26642
M: 2930c5a669a3378f6abad869f03d2f51dda26642 192.168.80.103:6372slots:[9102-10922] (1821 slots) master1 additional replica(s)
S: 90452b7335ded535fe3b72ebb1d7e83df3962abd 192.168.80.102:6374slots: (0 slots) slavereplicates 0c2ce94d99291b55f181867991f9e39aa2690301
M: c37f388dd0a0ff29cfbf9936a671565f77444311 192.168.80.102:6371slots:[1820-3640] (1821 slots) master1 additional replica(s)
M: ba00470e7d33e2b677d3dab1fd2d1d95af03fa53 192.168.80.103:6371slots:[3641-5460] (1820 slots) master1 additional replica(s)
M: 7e711ab35b67994b0ef5a5d12ad63e217a44e644 192.168.80.102:6372slots:[7282-9101] (1820 slots) master1 additional replica(s)
M: dc610488eb49a1d53b02f246171ca792482600ee 192.168.80.101:6372slots:[5461-7281] (1821 slots) master1 additional replica(s)
S: 9be6338fcd653b7fd632a474c2107f93a1aa6852 192.168.80.102:6376slots: (0 slots) slavereplicates fc901fa4cb00cba1b22beae6114f6c45898f1f44
M: fc901fa4cb00cba1b22beae6114f6c45898f1f44 192.168.80.101:6373slots:[10923-12742] (1820 slots) master1 additional replica(s)
S: c30f6ed1b91580aea9b89bafe36b4393dffdd549 192.168.80.102:6375slots: (0 slots) slavereplicates dc610488eb49a1d53b02f246171ca792482600ee
M: 54f8ca5d4e7f4e40798e17a49f21c915c51f95c2 192.168.80.102:6373slots:[12743-14563] (1821 slots) master1 additional replica(s)
S: 5a8a30fd89c1d00ddf8a5700c523d1fab9663071 192.168.80.103:6374slots: (0 slots) slavereplicates c37f388dd0a0ff29cfbf9936a671565f77444311
S: ddee24135bee2cad01c24a2aa473a50ece55f55b 192.168.80.103:6376slots: (0 slots) slavereplicates 54f8ca5d4e7f4e40798e17a49f21c915c51f95c2
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
root@node3:/data# redis-cli -p 6371 -a admin
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6371> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:18
cluster_size:9
cluster_current_epoch:18
cluster_my_epoch:13
cluster_stats_messages_ping_sent:134
cluster_stats_messages_pong_sent:149
cluster_stats_messages_meet_sent:1
cluster_stats_messages_sent:284
cluster_stats_messages_ping_received:149
cluster_stats_messages_pong_received:135
cluster_stats_messages_received:284
total_cluster_links_buffer_limit_exceeded:0
127.0.0.1:6371> cluster nodes
bda761bbb7bababb19d7a85a99f56782e30c03b6 192.168.80.101:6375@16375 slave ba00470e7d33e2b677d3dab1fd2d1d95af03fa53 0 1709020740616 13 connected
5a8a30fd89c1d00ddf8a5700c523d1fab9663071 192.168.80.103:6374@16374 slave c37f388dd0a0ff29cfbf9936a671565f77444311 0 1709020741524 7 connected
e2179f84bb47afa517b793bf95aa755fe72f3dae 192.168.80.103:6373@16373 master - 0 1709020740918 15 connected 14564-16383
c30f6ed1b91580aea9b89bafe36b4393dffdd549 192.168.80.102:6375@16375 slave dc610488eb49a1d53b02f246171ca792482600ee 0 1709020741000 2 connected
54f8ca5d4e7f4e40798e17a49f21c915c51f95c2 192.168.80.102:6373@16373 master - 0 1709020742000 9 connected 12743-14563
ddee24135bee2cad01c24a2aa473a50ece55f55b 192.168.80.103:6376@16376 slave 54f8ca5d4e7f4e40798e17a49f21c915c51f95c2 0 1709020742534 9 connected
90452b7335ded535fe3b72ebb1d7e83df3962abd 192.168.80.102:6374@16374 slave 0c2ce94d99291b55f181867991f9e39aa2690301 0 1709020741000 1 connected
ba00470e7d33e2b677d3dab1fd2d1d95af03fa53 192.168.80.103:6371@16371 myself,master - 0 1709020740000 13 connected 3641-5460
c37f388dd0a0ff29cfbf9936a671565f77444311 192.168.80.102:6371@16371 master - 0 1709020741000 7 connected 1820-3640
afbd41e97fef798f6e87d6d2a0e76433570eae6e 192.168.80.103:6375@16375 slave 7e711ab35b67994b0ef5a5d12ad63e217a44e644 0 1709020741423 8 connected
0c2ce94d99291b55f181867991f9e39aa2690301 192.168.80.101:6371@16371 master - 0 1709020742535 1 connected 0-1819
9be6338fcd653b7fd632a474c2107f93a1aa6852 192.168.80.102:6376@16376 slave fc901fa4cb00cba1b22beae6114f6c45898f1f44 0 1709020742635 3 connected
9f5aeb9230e3fa7fb86b75a1ab9a07b8801e52c7 192.168.80.101:6376@16376 slave 2930c5a669a3378f6abad869f03d2f51dda26642 0 1709020742535 14 connected
fc901fa4cb00cba1b22beae6114f6c45898f1f44 192.168.80.101:6373@16373 master - 0 1709020740514 3 connected 10923-12742
2930c5a669a3378f6abad869f03d2f51dda26642 192.168.80.103:6372@16372 master - 0 1709020741000 14 connected 9102-10922
7e711ab35b67994b0ef5a5d12ad63e217a44e644 192.168.80.102:6372@16372 master - 0 1709020742535 8 connected 7282-9101
668179a19a8c85c74b8f04456b25e7a844757f82 192.168.80.101:6374@16374 slave e2179f84bb47afa517b793bf95aa755fe72f3dae 0 1709020742432 15 connected
dc610488eb49a1d53b02f246171ca792482600ee 192.168.80.101:6372@16372 master - 0 1709020741625 2 connected 5461-7281
127.0.0.1:6371>
📢文章总结
对本篇文章进行总结:
🔔以上就是今天要讲的内容,阅读结束后,反思和总结所学内容,并尝试应用到现实中,有助于深化理解和应用知识。与朋友或同事分享所读内容,讨论细节并获得反馈,也有助于加深对知识的理解和吸收。
🔔如果您需要转载或者搬运这篇文章的话,非常欢迎您私信我哦~
🚀🎉希望各位读者大大多多支持用心写文章的博主,现在时代变了,🚀🎉 信息爆炸,酒香也怕巷子深🔥,博主真的需要大家的帮助才能在这片海洋中继续发光发热🎨,所以,🏃💨赶紧动动你的小手,点波关注❤️,点波赞👍,点波收藏⭐,甚至点波评论✍️,都是对博主最好的支持和鼓励!
- 💂 博客主页: 我是廖志伟
- 👉开源项目:java_wxid
- 🌥 哔哩哔哩:我是廖志伟
- 🎏个人社区:幕后大佬
- 🔖个人微信号:
SeniorRD
- 🎉微信号二维码:
📥博主目标
- 🍋程序开发这条路不能停,停下来容易被淘汰掉,吃不了自律的苦,就要受平庸的罪,持续的能力才能带来持续的自信。我本是一个很普通的程序员,放在人堆里,除了与生俱来的盛世美颜,就剩180的大高个了,就是我这样的一个人,默默写博文也有好多年了。
- 📺有句老话说的好,牛逼之前都是傻逼式的坚持,希望自己可以通过大量的作品、时间的积累、个人魅力、运气、时机,可以打造属于自己的技术影响力。
- 💥内心起伏不定,我时而激动,时而沉思。我希望自己能成为一个综合性人才,具备技术、业务和管理方面的精湛技能。我想成为产品架构路线的总设计师,团队的指挥者,技术团队的中流砥柱,企业战略和资本规划的实战专家。
- 🎉这个目标的实现需要不懈的努力和持续的成长,但我必须努力追求。因为我知道,只有成为这样的人才,我才能在职业生涯中不断前进并为企业的发展带来真正的价值。在这个不断变化的时代,我们必须随时准备好迎接挑战,不断学习和探索新的领域,才能不断地向前推进。我坚信,只要我不断努力,我一定会达到自己的目标。
🔔有需要对自己进行综合性评估,进行职业方向规划,我可以让技术大牛帮你模拟面试、针对性的指导、传授面试技巧、简历优化、进行技术问题答疑等服务。
可访问:https://java_wxid.gitee.io/tojson/