redis集群搭建

主从复制

  • 创建redis网络
docker network create --subnet=172.20.0.0/16 redis-network
  • 搭建redis节点
docker run --name master --network redis-network --ip 172.20.0.20 -d redis
docker run --name slave1 --network redis-network --ip 172.20.0.21 -d redis
docker run --name slave2 --network redis-network --ip 172.20.0.22 -d redis
docker run --name slave3 --network redis-network --ip 172.20.0.23 -d redis
  • 设置主从复制

依次登录各从节点172.20.0.21,172.20.0.22,172.20.0.23

redis-cli -h 172.20.0.21 -p 6379
slaveof 172.20.0.20 6379
  • 测试
# 登录master
redis-cli -h 172.20.0.20 -p 6379
# 执行命令
set key1 value1

# 登录从节点,查看数据已经复制
  • 缺点

当从节点断开后,需要重新复制数据,全量复制

  • 删除所有测试节点
docker stop master slave1 slave2 slave3 && docker rm master slave1 slave2 slave3

Sentinel

重复主从复制中1-3步骤

  • 设置Sentinel
# 登录
redis-cli -h 172.17.0.3 -p 6379