温馨提示×

centos redis配置如何集群

小樊
39
2026-10-08 18:37:50
栏目: 云计算

在 CentOS 上配置 Redis 集群(Redis Cluster),通常推荐使用 Redis 官方 Cluster 模式(无中心节点)。下面给你一个从零开始的完整实操指南(以 Redis 6.x / 7.x 为例)。


一、环境准备

1. 服务器规划(示例)

最少 3 个 master + 3 个 replica(6 个节点)

节点 IP 端口
node1 192.168.1.101 7001
node2 192.168.1.102 7002
node3 192.168.1.103 7003
node4 192.168.1.104 7004
node5 192.168.1.105 7005
node6 192.168.1.106 7006

如果是单机测试,也可以在一台机器上用不同端口。


二、安装 Redis(所有节点)

yum install -y gcc make
cd /usr/local/src
wget https://download.redis.io/releases/redis-7.2.4.tar.gz
tar zxvf redis-7.2.4.tar.gz
cd redis-7.2.4
make
make install

三、Redis 集群配置

1. 创建目录

mkdir -p /etc/redis/cluster/7001
cd /etc/redis/cluster/7001

2. 配置文件(redis.conf)

port 7001
bind 0.0.0.0
daemonize yes
pidfile /var/run/redis_7001.pid
logfile /var/log/redis_7001.log

cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 5000

appendonly yes
dir /etc/redis/cluster/7001

其他节点只需改端口和路径即可


四、启动 Redis 节点

每个节点执行:

redis-server /etc/redis/cluster/7001/redis.conf

检查:

ps -ef | grep redis

五、创建 Redis Cluster

方式一(推荐):redis-cli 自动创建

在任意一台节点执行:

redis-cli --cluster create \
192.168.1.101:7001 \
192.168.1.102:7002 \
192.168.1.103:7003 \
192.168.1.104:7004 \
192.168.1.105:7005 \
192.168.1.106:7006 \
--cluster-replicas 1

说明:

  • --cluster-replicas 1:每个 master 1 个 replica
  • 自动分配 16384 个 slot

六、验证集群

redis-cli -c -h 192.168.1.101 -p 7001
cluster info
cluster nodes

测试写入:

set foo bar
get foo

七、防火墙(CentOS)

firewall-cmd --zone=public --add-port=7001-7006/tcp --permanent
firewall-cmd --reload

八、常见运维命令

查看集群状态

redis-cli --cluster check 192.168.1.101:7001

扩容节点

redis-cli --cluster add-node new_ip:port existing_ip:port

重新分配 slot

redis-cli --cluster reshard existing_ip:port

九、常见问题

1. 集群无法启动

  • 检查 cluster-enabled yes
  • 删除旧 nodes-*.conf 再试

2. 只支持一个 key 的事务

  • Redis Cluster 不支持跨 slot 事务

3. 客户端必须支持 Cluster

  • 如 Jedis / Lettuce / redis-py-cluster

如果你需要:

  • ✅ 单机多实例集群
  • ✅ Docker 部署 Redis Cluster
  • ✅ Redis Cluster + Sentinel
  • ✅ Spring Boot 连接 Redis Cluster

告诉我你的使用场景,我可以给你对应方案。

0 踩