在Docker环境中搭建Redis集群

redis-5.0.0之后已经将 redis-trib.rb 脚本的功能全部集成到 redis-cli之中了,在docker环境下基于redis-cli 的 --cluster 来搭建集群将变得非常简单。Redis要求 一主一从的搭配至少要 六个节点,形成三对主从。在项目的实际部署中应用了2台物理机,每台分别部署了3个节点。下面简单记录下部署的步骤:

  1. 拉取镜像,直接用最新版本的redis
docker pull redis
  1. 创建配置文件和存储目录
    mkdir -p /usr/local/redis/{7000,7001,7002}
    在每个文件夹下都建立data和redis.conf配置文件起名为redis7000.conf、redis7001.conf、redis7002.conf
  2. 修改配置文件内容
port 7000       ##节点端口
cluster-enabled yes           ##cluster集群模式
cluster-config-file nodes.conf      ##集群配置名
cluster-node-timeout 5000           ##超时时间 
appendonly yes                      ##持久化模式
protected-mode no
  1. 创建redis容器
    分别取名redis-7000 redis-7001 redis-7002 对应集群中的三个节点
docker run -p 7000:7000 -p 17000:17000 –restart=always --name redis-7000 --net host -v /usr/local/redis/7000/redis7000.conf:/etc/redis/redis.conf -v /usr/local/redis/7000/data:/data -d redis:4.0 redis-server /etc/redis/redis.conf
  1. 在另外一台物理机上重复1-4步骤,启动另外三个节点,对应的端口分别是7003、7004、7005

6.启动集群,由于新版redis-cli 已经包含了redis-trib.rb的功能,所以进入任意一个节点,运行启动集群命令即可,执行集群指令前,开放相应的防火墙端口。

docker exec -it redis-7000 /bin/sh

redis-cli --cluster create 192.168.1.25:7000 192.168.1.25:7001 192.168.1.25:7004 192.168.1.26:7002 192.168.1.26:7003 192.168.1.26:7005
  1. 测试集群
    可进入任意一个节点内容
docker exec -it redis-7000 /bin/sh
redis-cli -p 7000 -c
127.0.0.1:7000>set testnode test
-> Redirected to slot [7455] located at 192.168.1.25:7001
OK

你可能感兴趣的:(在Docker环境中搭建Redis集群)