1. 准备工作
- 三台服务器
服务器ip | 角色 |
172.17.0.2 | 主 |
172.17.0.3 | 从 |
172.17.0.4 | 从 |
2. docker安装redis
docker pull redis
3. 运行
主172.17.0.2执行:
docker run -itd -p 6379:6379 --name redis_master redis:lastest
docker exec -it redis_master /bin/bash
从172.17.0.3执行:
docker run -itd -p 6380:6379 --name redis_slave01 redis:lastest
docker exec -it redis_master /bin/bash
从172.17.0.4执行:
docker run -itd -p 6381:6379 --name redis_slave02 redis:lastest
docker exec -it redis_master /bin/bash
4. 查看角色
主:
root@bbdc4ea1d635:~# redis-cli
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:aeb82f8d69c90839e5cdaff41d22b0fddbee016b
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379>
从01:
root@53649a49f7a4:/data# redis-cli
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:ea83f12298b5b01ba7406bd4da4c0a7ce6c8f659
master_replid2:9b8c2ef4539809505fa5bc1dd779c4500298011d
master_repl_offset:1358
second_repl_offset:1359
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1358
127.0.0.1:6379>
从02:
root@21ac2d54006e:/data# redis-cli
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:31fdc0321cf9dec7b037b7fc20628611d427be4a
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379>
4. 在两台从服务器上执行命令 replicaof 172.17.0.2 6379
127.0.0.1:6379> replicaof 172.17.0.2 6379
OK
127.0.0.1:6379>
5. 查看主服务信息
127.0.0.1:6379> info replication
# Replication
role:master
###从服务器信息
connected_slaves:2
slave0:ip=172.17.0.3,port=6379,state=online,offset=1456,lag=1
slave1:ip=172.17.0.4,port=6379,state=online,offset=1456,lag=0
###从服务器信息
master_failover_state:no-failover
master_replid:9b8c2ef4539809505fa5bc1dd779c4500298011d
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1456
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1456
127.0.0.1:6379>
6. 测试:
主服务器上:
127.0.0.1:6379> set name zs
OK
127.0.0.1:6379>
从服务器也可以查看到信息
127.0.0.1:6379> replicaof 172.17.0.2 6379
OK
127.0.0.1:6379> get name
"zs"
127.0.0.1:6379>