docker搭建redis主从集群

准备条件:安装好docker 下载好redis的镜像 最新版本即可

创建三个目录用于存放持久化文件

    mkdir /usr/local/docker/redis/redis-6379/data
    mkdir /usr/local/docker/redis/redis-6380/data
    mkdir /usr/local/docker/redis/redis-6381/data

下载好一份redis的配置文件分别拷贝到对应的目录中去

    cp redis.conf /usr/local/docker/redis/redis-6379/
    cp redis.conf /usr/local/docker/redis/redis-6380/
    cp redis.conf /usr/local/docker/redis/redis-6381/

修改主从的配置文件 master配置文件:

    bind 0.0.0.0
    dir ./data
    appendonly yes
    requirepass 123456 #设置连接密码 集群安全认证
	从节点要新增一个slaveof配置 以及master节点的ip:
    bind 0.0.0.0
    dir ./data
    appendonly yes
    slaveof  172.18.0.2 6379
    masterauth 123456

创建一个网络 redis集群将会全部放在这个网络中去

	docker network create --subnet=172.18.0.0/16 redis-ms

将所有redis的docker内部ip固定来启动 同时挂载外部的redis.conf

	docker run -p 6379:6379 --name redis-master  --net redis-ms --ip 172.18.0.2 -v /usr/local/docker/redis/redis-6379/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/redis-6379/data:/data -d redis redis-server /etc/redis/redis.conf

	docker run -p 6380:6379 --name redis-slave1 --net redis-ms --ip 172.18.0.3 -v /usr/local/docker/redis/redis-6380/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/redis-6380/data:/data -d redis redis-server /etc/redis/redis.conf  

	docker run -p 6381:6379 --name redis-slave2 --net redis-ms --ip 172.18.0.4 -v /usr/local/docker/redis/redis-6381/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/redis-6381/data:/data -d redis redis-server /etc/redis/redis.conf  

分别连接三个redis进行主从同步测试

[root@localhost ~]# redis-cli -p 6379 -a 123456
127.0.0.1:6381> set key1 value1
"value1"
[root@localhost ~]# redis-cli -p 6381
127.0.0.1:6381> get key1
"value1"
[root@localhost ~]# redis-cli -p 6380
127.0.0.1:6381> get key1
"value1"

可以观察到同步完成

进行主从压测

docker exec -it redis-master redis-benchmark docker exec -it redis-master redis-benchmark 
原文地址:https://www.cnblogs.com/blackmlik/p/14229982.html