如何在php中管理memcached服务器

时间:2012-03-19 23:34:23

标签: php memcached

在php中管理memcache服务器的最佳方法是什么?我特别关注添加/删除服务器,或者有1次失败。

据我了解,如果您只是注释掉要取出的服务器的addServer(),它将搞砸整个缓存池。是吗?

目前我正在诉诸:

启用:

$memcache_obj->addServer('ip', port, true, 1, 1, 15, true);

禁用

$memcache_obj->addServer('ip', port, true, 1, 1, -1, false);

这是个好主意吗?

如何存储内存缓存服务器列表。我有几台服务器都需要连接到memcache池。进行任何更改都需要我在所有这些服务器上编辑配置。

如何将服务器列表存储在mysql中?

1 个答案:

答案 0 :(得分:1)

使用php的Memcache库执行此操作的两种方法(据我所知):

  • 您使用的方法,如果启用了memcache.allow_failover,则会启用透明故障转移。执行此操作时,需要在服务器重新投入生产时重新创建服务器禁用时设置的密钥。
  • memcache.hash_strategy更改为一致。这将使哈希策略受服务器池的影响较小。

无论哪种方式,从池中禁用或删除服务器都会产生影响,并且某些密钥将在此过程中丢失。

在php的Memcached(注意d)库中可以找到更多选项(但当然这意味着代码会发生变化)。

查看您当前设置的php.iniMemcache runtime configuration

作为旁注,将服务器列表存储在mysql中是一个坏主意。让它硬编码的最佳方式。进行数据库连接和查询只会获得一个服务器列表,这将使您连接到快速存储缓冲区,效率很低。缓存应该是避免连接和查询数据库的一种方法。