我使用Memchache存储一些数据,memcahce中的单项看起来像以下结构:
opacity
所以在memcache中我有多个具有相似键的项目,可以通过Web界面更改位于side locale-> domain中的值。我的问题是:
如果我将所有语言环境放在名为locales_holder的单个memcache项目中,然后从中获取所有数据,它对性能至关重要还是可以呢?
谢谢!
答案 0 :(得分:1)
这不会非常有效。 Memcache删除经常不使用或需要空间的密钥。
构建密钥并存储中小型数据可以获得最佳效果。
Memcache key: locale/domain1/key1/1
Memcache value: 'value1-1'
每当某些内容发生变化时,您都不必将整个数据块写回内存缓存实例。
此外,如果您使用多台服务器,数据会更好地分布在服务器上,因为它可以将整个区域设置部分分散到多台服务器上。
如果您有两台服务器,则memcached客户端会从密钥计算数值并对其执行简单计算(例如,模数),以确定是否应将值存储在第一个或第二个已配置的memcached实例上
另见: - Memcached best practices - small objects and lots of keys or big objects and few keys? - http://www.ibm.com/developerworks/library/os-memcached/