Redis官方教程地址: https://redis.io/topics/cluster-tutorial
Redis Cluster 5.x集群搭建
Redis4.x 搭建集群是需要手动安装ruby组件的,比较麻烦。自从redis5.x发布之后,可以利用redis-cli方便的启动集群。
redis集群需要至少三个master节点,我们这里搭建三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,这里用一台机器(可以多台机器部署,修改一下ip地址就可以了 )部署6个redis实例,三主三从,搭建集群的步骤如下:
- 创建Redis节点安装目录 (指定目录下 创建文件夹 redis_cluster)
mkdir /usr/local/redis_cluster
- 在/usr/local/redis_cluster目录下,创建7000-7005文件夹
mkdir 7000 7001 7002 7003 7004 7005
- 并将redis-config分别拷贝到7000-7005文件夹下
cp /opt/redis-5.0.7/redis.conf ./7000
cp /opt/redis-5.0.7/redis.conf ./7001
cp /opt/redis-5.0.7/redis.conf ./7002
cp /opt/redis-5.0.7/redis.conf ./7003
cp /opt/redis-5.0.7/redis.conf ./7004
cp /opt/redis-5.0.7/redis.conf ./7005
- 修改Redis配置文件(以下是以7000为例)
#关闭保护模式用于公网访问
protect ed-mode no
port 7000
#开启集群模式
cluster-enabled yes
cluster-config-file nodes -7000. conf
cluster -node-timeout 5000
#后台启动
daemonize yes
pidfile /var/run/redis_ 7000.pid
logfile "7000. log"
#此处绑定ip可以是阿里内网ip和本地ip也可以直接注释掉该项
#bind 127.0.0.1
#用于连接主节点密码
master auth lidong
#设置redis密码各个节点请保持密码一致
requirepass lidong
- 依次复制并修改6个redis.conf
cp ./7000/redis.conf ./7001 #依次进行复制
vim ./7001/redis.conf #进入vim编辑之后,执行以下代码将7000全部替换成7001
:%s/7000/7001/g #表示:%s/old/new/g g表示全部替换
最后保存退出即可。
7001~7005依次修改
- 依次启动6个节点
以上图片可以看到修改后的目录生成的文件。
将安装的redis目录下的src复制到redis_cluster下,方便启动服务端:
cd /opt/redis-5.0.7 #进入redis安装目录
cp -r /src /usr/local/redis_cluster/ #将src文件复制到redis_cluster目录中
分别启动6个节点
cd /usr/local/redis_cluster
./src/redis-server ./7000/redis.conf
./src/redis-server ./7001/redis.conf
./src/redis-server ./7002/redis.conf
./src/redis-server ./7003/redis.conf
./src/redis-server ./7004/redis.conf
./src/redis-server ./7005/redis.conf
启动后,可以用ps查看redis的进程:
ps -ef|grep -i redis
- 创建集群
Redis5.x版本之后,通过redis-cli客户端命令来进行创建集群。
cd /usr/local/redis_cluster
./src/redis-cli --cluster create -a lidong 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 --cluster-replicas 1
Redis Cluster集群验证
- 基本命令
cd /usr/local/redis_cluster
./src/redis-cli -c -p 7000 -a lidong # -c是必须要添加的
```![在这里插入图片描述]()
- 输入命令
cluster nodes
info replication
由以上数据可以看到主从关系:
```bash
1e2ae0433c6f61ef995e1df967ea0cfe5c7fd3fa 127.0.0.1:7000@17000 myself,master - 0 1583380663000 1 connected 0-5460
954e15015a82be658d3f2129ad4b08588797cac1 127.0.0.1:7003@17003 slave b1612492948870316dd45ae25e415baa64452264 0 1583380665000 4 connected
e03d0d3f6ba39005afe832fee2b2241ac28b1785 127.0.0.1:7002@17002 master - 0 1583380665800 3 connected 10923-16383
deb96818eb20fb3f995265006062a9ea28acb0f7 127.0.0.1:7004@17004 slave e03d0d3f6ba39005afe832fee2b2241ac28b1785 0 1583380663796 5 connected
f4554cb583c1debfa324109e2055351b2b82e6e1 127.0.0.1:7005@17005 slave 1e2ae0433c6f61ef995e1df967ea0cfe5c7fd3fa 0 1583380663000 6 connected
b1612492948870316dd45ae25e415baa64452264 127.0.0.1:7001@17001 master - 0 1583380664797 2 connected 5461-1092
```
- 测试数据
Redis Cluster关闭集群
- 启动集群
开启全部redis节点 ,创建start.sh
/usr/local/redis_cluster/src/redis-server ./7000/redis.conf
/usr/local/redis_cluster/src/redis-server ./7001/redis.conf
/usr/local/redis_cluster/src/redis-server ./7002/redis.conf
/usr/local/redis_cluster/src/redis-server ./7003/redis.conf
/usr/local/redis_cluster/src/redis-server ./7004/redis.conf
/usr/local/redis_cluster/src/redis-server ./7005/redis.conf
chmod u+x start.sh #将shutdown. sh变成可执行文件
./start.sh #在当前目录下启动
提示: -a访问服务端密码,-c表示集群模式, -h指定ip地址,-p指定端口号
- 关闭集群
cd /usr/local/redis_ cluster目录下编写脚本文件:
vim shutdown.sh
/usr/local/redis_cluster/src/redis-cli -c -h 127.0.0.1 -p 7000 -a 密码 shutdown
/usr/local/redis_cluster/src/redis-cli -c -h 127.0.0.1 -p 7001 -a 密码 shutdown
/usr/local/redis_cluster/src/redis-cli -c -h 127.0.0.1 -p 7002 -a 密码 shutdown
/usr/local/redis_cluster/src/redis-cli -c -h 127.0.0.1 -p 7003 -a 密码 shutdown
/usr/local/redis_cluster/src/redis-cli -c -h 127.0.0.1 -p 7004 -a 密码 shutdown
/usr/local/redis_cluster/src/redis-cli -c -h 127.0.0.1 -p 7005 -a 密码 shutdown
chmod u+x shutdown.sh #将shutdown. sh变成可执行文件
./shutdown.sh #在当前目录下启动
提示: -a访问服务端密码,-c表示集群模式, -h指定ip地址,-p指定端口号