是否可以 运行 同一应用程序的多个实例与单个 memcached 服务器?

Is it possible to run multiple instances of the same application with a single memcached server?

我在 dockerized 应用程序和 Memcached 上遇到问题,存储一些值,显然,当启动一个运行 Spymemcached 客户端的新 Docker 实例时,存储在缓存中的所有数据都是无效,所以如果我之前在节点 1 的缓存中存储了一些值然后启动节点 2,这些值将从 Memcached 服务器中清除,最后如果在节点 1 上再次存储相同的值并在节点 2 上查询它们将在不清理数据的情况下在两个节点之外共享。这是预期的行为吗?我应该为每个客户端实例使用一个 Memcached 服务器吗?或者是否可以在不丢失存储数据的情况下将同一个 Memcached 服务器实例共享给多个客户端?

您可以与多个客户端共享同一个 memcached 实例。

您只需为 Node1、Node2 和 memcached 创建不同的 docker 容器。

在同一容器网络上创建它们。 样本 docker-compose.yml.

version: '2'
services:
   node1:
     image: <your-image>:latest
     network:
       main:
          aliases:
             - node1
  node2:
     image: <your-image>:latest
     network:
       main:
          aliases:
             - node2
  memcached:
     image: memcached:latest
     network:
       main:
          aliases:
             - memcached
network:
   main:

我将 Memcached 客户端库从 Spotify 迁移到 Folsom 并解决了我的问题。对 Spymencached 的好奇心,我提到的问题仅在客户端 运行 在 Windows 机器上时发生。