Redis 读写分离

启动写主机

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 的角色。

你可能感兴趣的:(Redis 读写分离)