使用docker实现Redis主从集群

配置主Redis

1
2
3
4
5
6
docker run -d -p 6379:6379 \
> -v /app/rd1:/bitnami/redis/data \
> -e REDIS_REPLICATION_MODE=master \
> -e REDIS_PASSWORD=123456 \
> --network mynet --name redis01 \
> bitnami/redis

但是执行完上述代码后我们发现,redis的容器并未成功运行,排查日志发现是因为/app/rd1目录的权限只有root用户可读写,而redis的启动用户是redis,所以无法写入数据。
解决方法:

1
2
chmod -R 777 rd1 (更改权限)
docker restart redis01 (重启容器)

配置从Redis

由于从Redis也有权限问题,所以我们直接创建并修改文件权限

1
2
mkdir rd2
chmod -R 777 rd2

创建并启动从Redis容器
1
2
3
4
5
6
7
8
docker run -d -p 6380:6379 \
> -v /app/rd2:/bitnami/redis/data \
> -e REDIS_REPLICATION_MODE=slave \
> -e REDIS_MASTER_HOST=redis01 \
> -e REDIS_MASTER_PORT_NUMBER=6379 \
> -e REDIS_MASTER_PASSWORD=123456 \
> --network mynet --name redis02 \
> bitnami/redis

正常情况下主从Redis就已经设置完毕了,你可以通过redis可视化工具链接并查看主从数据是否同步。