【发布时间】:2012-06-28 15:43:04
【问题描述】:
来自 memcached wiki:
当表已满时,后续插入会导致按最近最少使用 (LRU) 顺序清除较旧的数据。
我有以下问题:
将清除哪些数据?插入较旧的那个,还是最近最少使用的那个?我的意思是,如果最近访问的数据是
d1,它是最旧的插入,并且缓存已满,同时替换数据会替换d1?我正在使用 PHP 与 memcached 进行交互。我可以控制如何在 memcached 中替换数据吗?就像我不希望我的某些数据在过期之前被替换,即使缓存已满。不应替换此数据,而是可以删除其他数据以进行插入。
数据过期后是否立即删除?
存储的键数量对 memcached 性能有何影响?
memcached.conf中-k选项的意义是什么?我无法理解“锁定所有分页内存”是什么意思。另外,README 中的描述也不够充分。
【问题讨论】:
-
LRU 代表最近最少使用...如果 memcache wiki 这么说,那么我认为是这种情况,除非您有证据表明其他情况
-
说实话,听起来你要么想太多,要么 memcached 不是你想要的。 memchached 是一个缓存,目的是让经常使用的数据快速可用,否则可能需要一些时间来加载。它绝对不保证这些数据每次都可用,或持续多长时间,或根本不可用。它不是主数据存储。它所做的只是也许有时会加快数据的检索速度。您永远不能假设某些数据会在缓存中。这就是缓存的本质。
-
最需要强调的一点是memcached提供的是cache服务,而不是有保证的数据存储。它旨在支持配置约束内的多个应用程序。如果被任何单个应用滥用,那么共享该缓存的所有应用都会受到影响。
标签: php performance memcached