我在dockerized应用程序和Memcached上遇到问题,存储一些值,显然,当启动一个运行Spymemcached客户端的新Docker实例时,存储在缓存中的所有数据都是无效的,所以如果我以前在节点1的缓存中存储了一些值,然后我启动节点2,从Memcached服务器清除这些值,最后如果在节点1上再次存储相同的值并在节点2上查询它们将在两个节点之外共享它们清理数据。这是预期的行为吗?我应该为每个客户端实例使用Memcached服务器吗?或者是否可以将多个Memcached服务器实例共享到多个客户端而不丢失存储的数据?
答案 0 :(得分:0)
您可以与多个客户共享同一个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:
答案 1 :(得分:0)
我将Memcached客户端库从Spotify迁移到Folsom并解决了我的问题。关于Spymencached的好奇心,我提到的问题只有在客户端在Windows机器上运行时才会出现。