启动写主机
docker run -v redis-master-conf:/usr/local/etc/redis -v redis-master-data:/data --hostname redis-master --name redis-master -d redis redis-server /usr/local/etc/redis/redis.conf
启动读服务 * 2
注意要 link
写主机, bind(-v)
相同的 volume ,共用一个配置
docker run -v redis-slave-conf:/usr/local/etc/redis -v redis-slave-data:/data --hostname redis-slave-1 --link redis-master --name redis-slave-1 -d redis redis-server /usr/local/etc/redis/redis.conf
docker run -v redis-slave-conf:/usr/local/etc/redis -v redis-slave-data:/data --hostname redis-slave-2 --link redis-master --name redis-slave-2 -d redis redis-server /usr/local/etc/redis/redis.conf
编辑读服务的配置文件 redis.conf
# 绑定 hostname 为 redis-master 的主机,端口号为 6379
slaveof redis-master 6379
# 读服务只允许读
slave-read-only yes
重启读服务
docker restart redis-slave-1 redis-slave-2
检查是否配置成功
进入 master 主机的 redis ,config replication
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=172.17.0.3,port=6379,state=online,offset=852,lag=1
slave1:ip=172.17.0.5,port=6379,state=online,offset=852,lag=1
master_failover_state:no-failover
master_replid:3858e5c8a6f9d14b2464c033649622d3b2c50c78
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:852
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:852
可以看到 connected_slaves 这一项的值为 2,表示有两台机器连上了master 并充当 slave 的角色。