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实例,三主三从,搭建集群的步骤如下:

  1. 创建Redis节点安装目录 (指定目录下 创建文件夹 redis_cluster)
mkdir /usr/local/redis_cluster
  1. 在/usr/local/redis_cluster目录下,创建7000-7005文件夹
mkdir 7000 7001 7002 7003 7004 7005
  1. 并将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
  1. 修改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
  1. 依次复制并修改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依次修改
  1. 依次启动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

两个redis集群 多个redis集群_Redis

  1. 创建集群
    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

两个redis集群 多个redis集群_d3_02


由以上数据可以看到主从关系:

```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集群 多个redis集群_redis_03

  • 测试数据

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指定端口号