gpt4 book ai didi

java - memcache 数据过期时是否删除 key ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:56:47 26 4
gpt4 key购买 nike

我目前正致力于将内存缓存添加到在 GAE/J 上运行的应用程序中。我对生产内存缓存在值过期时的行为有疑问,如果它们的键也被删除的话。

我能找到的最接近回答这个问题的是:http://code.google.com/appengine/docs/java/memcache/overview.html#How_Cached_Data_Expires

我知道我不能依赖内存缓存中的值;我没有,但我想知道的是,是否也删除了映射到这些值的键。

换句话说,如果我这样做

mycache.contains("key")

在将值从缓存中推出后,这是否仍然成立?

旁注:不要认为这有什么不同;但以防万一,我正在使用内存缓存服务中的异步内存缓存并像这样获取它:

MemcacheServiceFactory.getAsyncMemcacheService();

我问这个是因为我没有做典型的

if(cache.get("key") == null)

当空值从数据存储区返回时,我会存储空值,这样我就不会经常查找空值。而且我确实注意确保在可能更改时删除 key 。所以仅仅因为 memcache 查找返回 null,我就假设查询实际上是 null;但我确实确保当其他可能改变的查询发生时,空查找被删除。这就是为什么我使用 cache.contains("key") 而不是 cache.get("key") == null

最佳答案

您的假设是正确的,如果该值已从内存缓存服务中逐出,mycache.contains("key") 将返回 false。此行为记录在 low-level Memcache API 的 Javadoc 中.

关于java - memcache 数据过期时是否删除 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8127218/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com