从内存缓存哈希中删除特定密钥



我正在尝试使用memcached为我的rails应用程序缓存一个表t_abc。该表有 50,000 个条目。我最终想要 20,000 个密钥(形式为"abc_"+id)。当第 20,001 个条目要插入缓存中时,我希望从缓存中删除这 20,000 个(上述形式,而不是 memcached 中的其他一些键)中最近最少使用的键。我该如何实现?

注意:我为所有条目保留到期 = 0。

不,不幸的是,您无法有效地使用memcached执行您想做的事情。

它有一个 LRU,适用于您存储的所有数据。 因此,如果您存储来自多个表的数据,则每个表占用的 memcached 条目的比例取决于来自不同表中数据的相对访问模式。

因此,要控制表的缓存行数,您实际上所能做的就是调整 memcached 的大小并改变存储的其他数据。

(此外,要评估 memcached 配置,您可以考虑使用不同的指标,例如命中率或中值响应时间,而不仅仅是缓存的行数。

最新更新