环境准备
服务器系统 | Centos6.8 |
---|---|
内存 | 1G |
CPU | 2核 |
IP地址 | 10.0.0.20 |
首先获取redis源码包,我这里有,如果没有可以去redis官网获取
# 或者使用wget命令直接获取到redis源码包
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
# # 安装依赖,否则会报错
yum -y install gcc gcc-c++
# 解压redis源码包
tar zxf redis-5.0.5.tar.gz
# 进入解压后的包
cd redis-5.0.5
# 安装在指定路径
make PREFIX=/usr/local/redis-cluster
# 执行这条命令
make PREFIX=/usr/local/redis-cluster MALLOC=libc
make install
cd
cd redis-5.0.5
mkdir /usr/local/redis
mkdir /usr/local/redis/{7001..7006}
cp redis.conf /usr/local/redis/7001/
cp redis.conf /usr/local/redis/7002/
cp redis.conf /usr/local/redis/7003/
cp redis.conf /usr/local/redis/7004/
cp redis.conf /usr/local/redis/7005/
cp redis.conf /usr/local/redis/7006/
# 编辑redis配置文件,修改完后保存退出
vim /usr/local/redis/7001/redis.conf
vim /usr/local/redis/7002/redis.conf
vim /usr/local/redis/7003/redis.conf
vim /usr/local/redis/7004/redis.conf
vim /usr/local/redis/7005/redis.conf
vim /usr/local/redis/7006/redis.conf
cd /usr/local/redis/
# 编写脚本
vim redis.sh
#!/bin/bash
for i in $(seq 7001 7006)
do
cd $i && redis-server redis.conf && cd ..
done
vim 7001/redis.conf
vim 7002/redis.conf
vim 7003/redis.conf
vim 7004/redis.conf
vim 7005/redis.conf
vim 7006/redis.conf
# 执行脚本
sh redis.sh
ss -ntl
安装redis-trib所需的 ruby脚本
yum -y install ruby
yum -y install rubygems
复制redis解压文件src下的redis-trib.rb文件到redis-cluster目录并安装gem
gem install redis -v 3.2.1
这是下载链接
https://rubygems.org/gems/redis/versions/3.2.2
cd /root/redis-5.0.5/src/
注意:redis-trib.rb在redis/src目录下。
# 使用redis-trib.rb创建集群
redis-cli --cluster create 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 127.0.0.1:7006 --cluster-replicas 1
上面显示创建成功有3个主节点3个从节点,每个节点都是成功连接状态。
redis-cli -c -h 127.0.0.1 -p 7001
CLUSTER INFO
CLUSTER NODES
set name szm
exit
redis-cli -c -h 127.0.0.1 -p 7006
get name
set sex girl
exit
redis-cli -c -h 127.0.0.1 -p 7004
get name
get sex
根据redis-cluster的key值分配,name应该分配到节点7002[5461-10922]上,上面显示redis-cluster自动从7001跳转到了7002节点。
netstat -ntlp | grep 7003
kill -15 13744
netstat -ntlp | grep 7001
kill -15 13734
集群节点选举
现在模拟将7003节点挂掉,按照redis-cluster原理会选举会将 7003的从节点7005选举为主节点