上一篇 http://www.cnblogs.com/qinyujie/p/9029153.html,主要讲解了 redis cluster 集群架构 的优点、redis cluster 和 redis replication + sentinal 对比、redis cluster 数据分片算法,并简单介绍了原始hash算法 和 一致性hash 算法 + 虚拟节点。从标题看,你们就知道本篇主要讲解 redis cluster 集群 搭建,闲话少说,俺们直接 开撸!html
环境准备:
centos6.5 minimal
redis-3.2.8
3 * master 3* slavenode
注意:redis cluster 集群正常工做至少须要3个主节点,一个高可用,健壮的分布式的集群,每一个master都建议至少给一个slave,正式环境建议 6 台机器上去搭建,最少 3 台机器,为了模拟集群搭建,这里使用 3 台 虚拟机器 搭建 6 个实例的redis clusterredis
每一个 node 上安装 redis (这里就不讲了)算法
cluster-enabled <yes/no> //是否启动 redis cluster 集群vim
cluster-config-file <filename> //指定一个文件,集群 redis实例保存集群状态位置,文件主要保存集群中其余机器的信息,好比节点的上线和下限,故障转移; 这是redis自己去维护的centos
cluster-node-timeout <milliseconds> //节点存活超时时间,超过milliseconds 时间,集群认为节点宕机,master宕机的话就会触发主备切换,slave宕机就不会提供服务ruby
分别定义 6 个 redis 实例配置文件 : 6381.conf,6382.conf,6383.conf,6384.conf,6385.conf,6386.conf架构
mkdir -p /etc/redis-cluster //集群信息保存统一目录app
mkdir -p /var/log/redis //日志信息统一保存目录分布式
mkdir -p /var/redis/6381 // redis 的持久化文件
cd /usr/local/redis-3.2.8 && cp redis.conf /etc/redis/6381.conf
port 6381 cluster-enabled yes cluster-config-file /etc/redis-cluster/node-6381.conf cluster-node-timeout 15000 daemonize yes pidfile /var/run/redis_6381.pid dir /var/redis/6381 logfile /var/log/redis/6381.log bind 192.168.43.16 appendonly yes
cd redis-3.2.8 && cp utils/redis_init_script /etc/init.d/redis_6381 && chmod 777 /etc/init.d/redis_*
vim redis_6381
其余6382,6383,6384,6385,6386 重复以上操做
节点 - redis 实例 对应关系:
192.168.43.16 6381
192.168.43.16 6382
192.168.43.17 6383
192.168.43.17 6384
192.168.43.18 6385
192.168.43.18 6386
cd /etc/init.d/ && ./redis_6381 start
cd /etc/init.d/ && ./redis_6382 start
cd /etc/init.d/ && ./redis_6383 start
cd /etc/init.d/ && ./redis_6384 start
cd /etc/init.d/ && ./redis_6385 start
cd /etc/init.d/ && ./redis_6386 start
redis-trib.rb 须要ruby环境,因此须要安装ruby,只须要在一个node 中安装操做便可,这里在192.168.43.16 机器上安装
yum install -y ruby
yum install -y rubygems
gem install redis
cp /usr/local/redis-3.2.8/src/redis-trib.rb /usr/local/bin //建立软链接
redis-trib.rb create --replicas 1 192.168.43.16:6381 192.168.43.16:6382 192.168.43.17:6383 192.168.43.17:6384 192.168.43.18:6385 192.168.43.18:6386
--replicas 表示每一个master分配多少个slave
上图 yes 确认接收当前分配继续完成集群建立
redis-trib.rb check 192.168.43.16:6381