在CentOS 6.5系统上搭建Redis集群需要综合考虑系统环境、Redis版本及集群配置要求,本文将详细介绍从环境准备到集群验证的完整流程,确保部署过程清晰可操作。

环境准备与依赖安装
在开始部署前,需确保系统基础环境满足要求,CentOS 6.5默认使用Python 2.6,建议升级至Python 2.7以避免兼容性问题,执行以下命令更新系统并安装必要依赖:
sudo yum update -y sudo yum install -y gcc make tcl wget
Redis集群依赖Ruby环境,需安装Ruby 2.0以上版本,可通过EPEL源安装:
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm sudo yum install -y ruby rubygems
安装Redis时,建议选择3.0以上版本以支持集群功能,从官方源下载并编译安装:
wget http://download.redis.io/releases/redis-3.2.12.tar.gz tar xzf redis-3.2.12.tar.gz cd redis-3.2.12 make && make install
Redis集群节点配置
Redis集群至少需要6个节点(3主3副),建议在不同端口或虚拟机上部署,以单机多端口为例,创建配置文件目录:
mkdir -p /etc/redis/{7000,7001,7002} 为每个节点创建配置文件,以7000节点为例(其他节点修改端口即可):
cat > /etc/redis/7000/redis.conf <<EOF port 7000 cluster-enabled yes cluster-config-file nodes-7000.conf cluster-node-timeout 5000 appendonly yes appendfilename appendonly-7000.aof dbfilename dump-7000.rdb dir /var/lib/redis/7000 EOF
创建数据目录并设置权限:
sudo mkdir -p /var/lib/redis/7000 sudo chown -R redis:redis /var/lib/redis
启动集群节点
使用Redis源码中的redis-server启动各节点:

redis-server /etc/redis/7000/redis.conf redis-server /etc/redis/7001/redis.conf redis-server /etc/redis/7002/redis.conf
验证节点状态:
redis-cli -p 7000 cluster nodes
应看到节点状态为”fail”或”noaddr”,此时集群尚未形成。
创建Redis集群
使用Redis提供的redis-trib.rb工具创建集群,确保Ruby的redis gem已安装:
gem install redis
执行集群创建命令(假设6个节点端口为7000-7005):
redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
根据提示确认分配方案,等待集群自动完成数据分片和主从复制。
集群验证与测试
创建成功后,可通过以下命令检查集群状态:
redis-cli -p 7000 cluster nodes
输出应显示6个节点,其中3个主节点(master)和3个从节点(slave),且每个主节点分配了哈希槽(0-5460, 5461-10922, 10923-16383),测试数据写入:

redis-cli -p 7000 set key1 value1 redis-cli -p 7000 get key1
尝试向未分配哈希槽的节点写入数据应返回错误(如MOVED重定向)。
常见问题维护
当集群节点故障时,Redis会自动进行故障转移,如需手动添加节点,可使用redis-trib.rb add-node命令,日常维护需关注内存使用、持久化策略及网络延迟,建议配置监控告警。
相关问答FAQs
Q1: CentOS 6.5安装Redis集群时提示”rubygems no such file”怎么办?
A: 这通常是因为EPEL源未正确配置,可执行sudo yum install --enablerepo=epel rubygems手动安装,或检查/etc/yum.repos.d/epel.repo文件是否存在且配置正确。
Q2: Redis集群部分节点无法通信如何排查?
A: 首先检查防火墙设置(sudo iptables -L),确保节点间端口(默认7000-7005)开放;其次使用redis-cli -p <port> ping测试连通性;最后查看Redis日志(/var/log/redis/)定位具体错误信息。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复