4.4 多个客户端连接远端服务器

4.4.1 多个Redis客户端连接远端服务器

在本节中,将新建三个Docker容器,以此模拟三台主机.在这三个Docker容器里,包含了一个Redis服务器、两个Redis客户端,并且两个Redis客户端会连接到Redis服务器上,以此模拟两台主机上的Redis客户端远程连接到Redis服务器上的效果.具体的效果图如下图示.

两台Redis客户端远程连接到Redis服务器的效果

两台Redis客户端远程连接到Redis服务器的效果
  • step1. 创建表示redis-server的容器

  • step2. 创建并进入Redis客户端容器,在该容器内连接redis-server

创建并进入Redis客户端容器:

注:--link选项的含义:

在Docker的早期版本中,--link选项是用来在两个容器之间建立一个链接的.这意味着从一个容器可以安全地连接到另一个容器,而无需公开任何不必要的端口到宿主机.当您使用--link选项时,Docker会在两个容器之间建立一个私有网络连接,并将链接的容器的环境变量、主机名和其他相关信息传递给源容器.这使得源容器可以轻松地发现和连接到链接的容器.

语法:--link 链接容器名称:源容器内的主机名

连接redis-server:

  • step3. 尝试在客户端执行命令

  • step4. 再打开一个cmd窗口,再创建一个redis客户端容器

4.4.2 通过docker inspect命令观察IP地址

  • step1. 检查redis-server容器的IP地址

可以看到,名为redis-server的容器,其IP地址为172.17.0.2

  • step2. 检查redis-client1容器的IP地址

可以看到,名为redis-client1的容器,其IP地址为172.17.0.3

  • step3. 检查redis-client2容器的IP地址

可以看到,名为redis-client2的容器,其IP地址为172.17.0.4

4.4.3 实践客户端命令

在redis-client1容器中,查看连接到Redis服务器的所有客户端信息:

从2个连接的addrladdr属性可以看出,和上一小节中获取的容器IP地址是相同的

设置redis-client1的连接名为client1:

注:此时若在任意一个redis客户端上执行SHUTDOWN命令,则redis服务端和客户端都会关闭连接.该命令很容易造成生产事故!

4.4.4 通过info观察服务器状态

在redis-client2容器内连接redis-server后,查看服务器状态:

注:此处只查看了Stats部分的内容

在redis-client1容器中执行一些命令:

再次在redis-client2容器中查看服务器状态:

可以看到total_commands_processed配置项发生了变化

Last updated