在 Memcached 中正确存储数据

Proper storing data in Memcached

我正在使用 Memchache 存储一些数据,在 memcahce 中的单个项目看起来像以下结构:

`locale1` => [
   'domain1' => [
        'key1-1' => 'value1-1',
        'key1-2' => 'value1-2'
    ],
   'domain2' => [ ... ]
]

所以在 memcache 中,我有多个具有相似键的项目,可以通过 Web 界面更改位于 locale->domain 中的值。我的问题是:

如果我将所有语言环境放置到名为 locales_holder 的单个内存缓存项中,然后从中获取所有数据,这对性能至关重要还是正常?

谢谢!

这样效率不高。 Memcache 删除不经常使用或需要 space 的键。

构建密钥并存储中小型数据可获得最佳结果。

Memcache key: locale/domain1/key1/1
Memcache value: 'value1-1'

每当发生更改时,您不必将整个数据块写回内存缓存实例。

此外,如果您使用多台服务器,数据会更好地分布在服务器上,因为它可以将整个语言环境部分拆分到多台服务器上。

如果您有两个服务器,memcached 客户端会从键中计算出一个数值,并对其执行简单的计算(例如模数),以确定它应该将该值存储在配置的第一个还是第二个服务器上内存缓存实例。

另请参阅: - Memcached best practices - small objects and lots of keys or big objects and few keys? - http://www.ibm.com/developerworks/library/os-memcached/