基于docker的redis集群搭建

892 阅读1分钟

获取redis配置文件


wget http://download.redis.io/redis-stable/redis.conf

复制主从配置文件


cp redis.conf redis-master.conf 
cp redis.conf redis-slave.conf

修改主库配置信息

# 设置任意ip可连,注释这一行
# bind 127.0.0.1 
# 设置为true,让redis服务后台运行
daemonize yes 
# 设定密码
requirepass lindj

修改从库配置信息


# 设置任意ip可连,注释这一行
# bind 127.0.0.1
# 设置为true,让redis服务后台运行
daemonize yes
# 设定密码
requirepass lindj 
# <masterip>表示主库所在的ip,<masterport>表示主库启动的端口
slaveof <masterip> <masterport>
# 主库有密码必需要配置,<master-password>代表主库的访问密码
masterauth lindj

最终文件列表


启动redis集群


  1. 按照这个命令分别运行redis主库与从库
sh docker_restart.sh <名称> <端口>

docker_restart.sh 内容如下

#!/bin/sh
application_name=$1
port=$2

echo "application=${application_name}"
echo "port=${port}"
echo "container is stoping and removing"

containerId=$(docker ps -a | grep -E "${application_name}" | awk '{print $1}')

if [ ! -z $containerId ]
  then docker stop $containerId && docker rm $containerId
fi

echo "container is running"

docker run -it --name ${application_name} \
           -d -p ${port}:${port} redis redis-server --requirepass lindj --port ${port}

  1. 进入第一步启动的容器中
docker exec -it <redis库名称> bash
  1. 加载配置
redis-server /usr/local/etc/redis/redis.conf

重复第二步、第三步,直到所有容器都执行了一遍,至此redis集群启动完毕。

测试


进入主库

docker exec -it redis-master bash
# 连接redis
redis-cli -a lindj -p <端口>
set name 123

进入从库

docker exec -it redis-slave1 bash
# 连接redis
redis-cli -a lindj -p <端口>
get name

相关链接


Docker + Redis 主从环境搭建


** 三人行必有我师,欢迎大家指点学习**