Administrator
Administrator
发布于 2025-07-14 / 17 阅读
0
0

Redis Cluster集群搭建(三主三从)

集群规划:

基于6台服务器进行安装

主机IP

节点端口

172.30.42.60

6379

172.30.42.61

6379

172.30.42.62

6379

172.30.42.63

6379

172.30.42.64

6379

172.30.42.65

6379

第一章: 所有节点下载安装redis

1、#所有节点操作
yum install -y gcc automake autoconf libtool make
mkdir /application/ -p
wget https://download.redis.io/releases/redis-7.0.7.tar.gz
tar -xf redis-7.0.7.tar.gz -C /usr/local/
cd /usr/local/ 
mv redis-7.0.7 redis
make

2、#创建工作目录环境
mkdir /application/redis/{conf,data,logs,tmp} -p

3、编写配置文件
cd /application/redis/conf/

4、将以下配置写入redis.conf文件
bind 0.0.0.0
port 6379
loglevel notice
logfile "/application/redis/logs/redis.log"
pidfile /application/redis/tmp/redis.pid
daemonize yes
tcp-backlog 600 
timeout 0
tcp-keepalive 0

# 集群相关配置
# 是否以集群模式启动
cluster-enabled yes

# 集群节点回应最长时间,超过该时间被认为下线
cluster-node-timeout 15000

# 生成的集群节点配置文件名,文件名需要修改
cluster-config-file nodes.conf

# 持久化配置
dir /application/redis/data
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 1024mb
aof-load-truncated yes
aof-rewrite-incremental-fsync yes
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
rdbcompression yes
stop-writes-on-bgsave-error yes
rdbchecksum yes 

# 安全配置
requirepass 1qaz@WSX

# 慢查询配置
slowlog-log-slower-than 1000000 
slowlog-max-len 50 

#参数优化
maxclients 10000
maxmemory 2G
maxmemory-policy allkeys-lru
maxmemory-samples 5 
lua-time-limit 5000

第二章:所有节点使用systemctl管理启动redis

1、所有节点写入服务配置文件
cat /usr/lib/systemd/system/redis.service
[Unit]
Description=redis
After=network-online.target syslog.target

[Service]
Type=forking
User=root
Group=root
ExecStart=/usr/local/redis/src/redis-server /application/redis/conf/redis.conf
ExecReload=/bin/kill -s HUP
ExecStop=/bin/kill -s QUIT
PrivateTmp=true
LimitNOFILE = 65536
LimitNPROC = 65536
PermissionsStartOnly=true
Restart=on-failure
RestartPreventExitStatus=1

[Install]
WantedBy=multi-user.target

2、所有节点启动redis
systemctl daemon-reload
systemctl enable --now redis.service

第三章:集群生成操作

[root@k8s-master1-60 ~]# /usr/local/redis/src/redis-cli -a 1qaz@WSX --cluster create --cluster-replicas 1 172.30.42.60:6379 172.30.42.61:6379 172.30.42.62:6379 172.30.42.63:6379 172.30.42.64:6379 172.30.42.69:6379

#执行命令后会让你确认配置,输入yes确认

#查看集群状态 -c表示连接的是集群模式、-a表示安全密码、-h表示连接的节点、是集群IP地址中的任何一个地址就行
/usr/local/redis/src/redis-cli -a 1qaz@WSX -c -h 172.30.42.60

172.30.42.60:6379> CLUSTER info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:44149
cluster_stats_messages_pong_sent:41800
cluster_stats_messages_sent:85949
cluster_stats_messages_ping_received:41795
cluster_stats_messages_pong_received:44149
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:85949
total_cluster_links_buffer_limit_exceeded:0

172.30.42.60:6379> CLUSTER nodes
aa2f9d9d8e55bd20f9a94c5653b51cb56921f932 172.30.42.60:6379@16379 myself,master - 0 1752545643000 1 connected 0-5460
6c51e16a5ce7ef894de8b5286b29f01e4ee0cf64 172.30.42.61:6379@16379 master - 0 1752545645376 2 connected 5461-10922
0c6a2b22bf938a1b3e8a2fbf5ea3320de502cea4 172.30.42.69:6379@16379 slave 6c51e16a5ce7ef894de8b5286b29f01e4ee0cf64 0 1752545646383 2 connected
3c037b2cc05c9e0af9e8c72918559c86049daf24 172.30.42.62:6379@16379 master - 0 1752545644000 3 connected 10923-16383
61edd73e044dd5ee23d379839ec200e160cee7de 172.30.42.64:6379@16379 slave aa2f9d9d8e55bd20f9a94c5653b51cb56921f932 0 1752545646000 1 connected
ea23b0816eb59d89fae46577e40b3985053a8ae8 172.30.42.63:6379@16379 slave 3c037b2cc05c9e0af9e8c72918559c86049daf24 0 1752545644000 3 connected


评论