是否可以 运行 同一应用程序的多个实例与单个 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 机器上时发生。
我在 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 机器上时发生。