一、redis集群的概念
Redis3.0版本以上开始支持cluster,采用的是hashslot(hash槽),可以将多个Redis实例整合在一起,形成一个群集,也就是将数据分散到群集的多台机器上。
二、redis集群的原理
Redis Cluster是一个无中心的结构,每个节点都保存数据和整个群集的状态。每个节点都会保存其他节点的信息,知道其他节点所负责的槽,并且会与其他节点定时发送心跳信息,能够及时感知群集中异常的节点。
三、redis集群搭建
1、安装redis
下载epel源
yum -y install epel-release
安装redis软件
yum -y install redis
2、创建存放6个配置文件的目录(/usr/local/redis)目录位置自选
创建目录
mkdir /usr/local/redis
将配置文件复制6份到创建的目录并改名
cp /etc/redis.conf /usr/local/redis/6380.conf
cp /etc/redis.conf /usr/local/redis/6381.conf
cp /etc/redis.conf /usr/local/redis/6382.conf
cp /etc/redis.conf /usr/local/redis/6383.conf
cp /etc/redis.conf /usr/local/redis/6384.conf
cp /etc/redis.conf /usr/local/redis/6385.conf
3、更改6个配置文件
#分别修改配置文件中,按照配置文件名更改第一条和第三条的配置项,最后一条需要手动添加
port 【6380~6385】
cluster-enabled yes
cluster-config-file nodes-【6380~6385】.conf
cluster-node-timeout 15000
daemonize yes
4、启动redis
redis-server /usr/local/redis/6380.conf
redis-server /usr/local/redis/6381.conf
redis-server /usr/local/redis/6382.conf
redis-server /usr/local/redis/6383.conf
redis-server /usr/local/redis/6384.conf
redis-server /usr/local/redis/6385.conf
5、将其他节点加入集群
登录redis-cli -h 127.0.0.1 -p 6380
输入以下命令
CLUSTER MEET 192.168.115.128 6381
CLUSTER MEET 192.168.115.128 6382
CLUSTER MEET 192.168.115.128 6383
CLUSTER MEET 192.168.115.128 6384
CLUSTER MEET 192.168.115.128 6385
6、分配slot
redis-cli -p 6380 cluster addslots {0..5461}
redis-cli -p 6382 cluster addslots {5462..10922}
redis-cli -p 6384 cluster addslots {10923..16383}
7、建立主从关系
redis-cli -p 6381 cluster replicate b356143b3ca4f07cceb30634618339ed107f793c
redis-cli -p 6383 cluster replicate 5cca472f9816273103769adb32b3a1b562f42655
redis-cli -p 6385 cluster replicate 6d7219fd6db32e6014955edbeda26af6b59b9078
四、验证