java - Google App Engine Memcache - 滑动过期

标签 java google-app-engine memcached

GAE MemcacheService 是否支持滑动过期?我可以做一个粗略的实现,在每个 get() 之后我执行一个 put()。这将有效地重置过期时间,但这显然不是一个有效的解决方案。

关于如何更有效地实现这一点有什么建议吗?

谢谢, 基尔

最佳答案

缓存通常是 LRU(最近最少使用)。不建议对此进行操作,如果这样做,您可能使用了错误的机制。

话虽这么说,你的方案在大多数情况下都应该有效,但为什么呢?

根据 http://code.google.com/appengine/docs/java/memcache/overview.html

缓存数据如何过期 默认情况下,存储在内存缓存中的值会尽可能长时间地保留。如果缓存内存不足,则当将新值添加到缓存时,可能会从缓存中逐出值。当值由于内存压力而被逐出时,最近最少使用的值将首先被逐出。 应用程序可以在存储值时提供过期时间,可以是相对于添加值时的秒数,也可以是 future 的绝对 Unix 纪元时间(从 1970 年 1 月 1 日午夜开始的秒数)。该值将在此时被驱逐,尽管它可能会因其他原因被驱逐。 在极少数情况下,由于内存压力以外的原因,值也可能在过期之前从缓存中消失。虽然 memcache 对服务器故障具有弹性,但 memcache 值不会保存到磁盘,因此服务故障可能会导致值不可用。 一般来说,应用程序不应期望缓存值始终可用。

关于java - Google App Engine Memcache - 滑动过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2741629/

相关文章:

java - 不明白spymemcached的示例代码

linux - memcached 何时删除项目?

java - 使用操作栏选项卡在 fragment 之间切换

java - 在java中读取xml时创建对象

延迟后的 Java EJB 调用方法

python - 如何从 Google App Engine 应用程序解析 XML?

javascript - 将 json 文件从 GO 服务器提供给 javascript 客户端

google-app-engine - Google App Engine 内存缓存

java - 从任何字符串中获取最后三个字符 - Java

java - 带 GAE 的 Ninja 框架 : accessing the google app engine development console