一、docker新建两个redis服务端,并分别设置端口为6379和6380
命令如下:
docker run -p 6379:6379 -d --name redis-server docker.io/redis:3.0.7 redis-server --port 6379
docker run -p 6380:6380 -d --name redis-server docker.io/redis:3.0.7 redis-server --port 6380
创建好后可以查看容器的6380端口对应本地机器的IP和端口号,确认成功
docker port redis-server2 6380
二、为两个redis服务端分别建立各自的客户端redis-client、redis-client2
命令如下
docker run -it --name redis-client1 docker.io/redis:3.0.7 redis-cli -h 172.17.0.1 -p 6379
docker run -it --name redis-client2 docker.io/redis:3.0.7 redis-cli -h 172.17.0.1 -p 6380
此时在docker上能看到四个不同的容器了
docker ps
通过客户端发送命令确认服务端的不同端口
info
或者
config get port
三、在redis-client2发送命令,使6380服务器成为6379的slave,通过role命令查看当前的角色
slaveof 172.17.0.1 6379
四、可以在redis-client1上随意set内容,redis-client2上使用get查看
注意,当6380为readonly的slave时,只能被动接受6379的内容,无法使用set
五、使用命令退出主从关系
slaveof no one
外部关闭redis服务器
redis-cli -h 127.0.0.1 -p 6379 shutdown
通过客户端关闭:
shutdown
断开客户端连接(会先保存数据)
quit