啟動(dòng)寫主機(jī)
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
啟動(dòng)讀服務(wù) * 2
注意要 link 寫主機(jī), bind(-v) 相同的 volume ,共用一個(gè)配置
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
編輯讀服務(wù)的配置文件 redis.conf
# 綁定 hostname 為 redis-master 的主機(jī),端口號(hào)為 6379
slaveof redis-master 6379
# 讀服務(wù)只允許讀
slave-read-only yes
重啟讀服務(wù)
docker restart redis-slave-1 redis-slave-2
檢查是否配置成功
進(jìn)入 master 主機(jī)的 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 這一項(xiàng)的值為 2,表示有兩臺(tái)機(jī)器連上了master 并充當(dāng) slave 的角色。