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

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

我有两个应用程序,它们使用相同的代码,并且以相同的方式使用 memcached。memcached 能分辨出这两个应用程序之间的区别吗?在同一个服务器上使用单个 memcached 服务器运行它们是否安全?

答案1

可能不行,因为两个实例都会使用相同的键。也许你可以找到一种方法来为每个应用程序的键添加前缀。

答案2

您可以在服务器上运行两个 memcache 实例,监听不同的端口。例如

memcached -p 11211 -d

memcached -p 11212 -d

您只需对其中一个代码副本进行少量更改,以便它能够连接到另一个 memcached 端口。

如果没有这两个 memcache 实例和小的端口更改,我就看不到应用程序不发生冲突的方法。

答案3

您将会使同一个键的值发生冲突。

memcache 不知道谁插入了数据但知道插入了什么数据。您可以通过 telnet localhost memcache 端口 11211 进行检查但它可能会更改为您的环境,然后从您的第一个应用程序插入一个键值,用 get 检索它然后对第二个应用程序执行相同操作如果相同键的值发生变化则确保您覆盖该键的值。

我使用相同的 memcache 服务器,但为每个应用程序都提供了一个命名空间。

答案4

这可能会对某人有所帮助......

Windows 上的多个 memcache 实例/服务器: http://www.rdlt.com/multiple-memcache-instancesservers-on-windows.html

相关内容