我正在使用SSMCache
在我的应用程序中存储一些对象。我正在将SSMCache
对象添加到我的CacheManager
,如下所示:
@Bean
@Override
public CacheManager cacheManager() {
Set<SSMCache> ssmCacheSet = new HashSet<>();
try {
ssmCacheSet.add(new SSMCache(getMyCache(),
PropertyManager.getIntProperty("memcached.interval", 14400), true));
} catch (Exception e) {
LOGGER.error("Error creating cache manager", e);
}
SSMCacheManager ssmCacheManager = new SSMCacheManager();
ssmCacheManager.setCaches(ssmCacheSet);
return ssmCacheManager;
}
我想知道如何 NOT 指定缓存过期时间,以便始终使缓存可用,即。我不希望我的缓存过期。
我浏览了Simple Spring Memcached
的官方文档,但找不到如何为非过期缓存指定值。
我认为使用0
的值会使缓存完全没有过期,但我只是想从文档或wiki中确定它的位置。我也经历了SSMCache
的构造函数,找不到没有到期参数的构造函数。
请帮助我了解如何在没有过期时间的情况下创建缓存。
答案 0 :(得分:0)
您是否检查过Github存储库中的源代码?您可以在存储库中搜索“never expire”关键字,您将获得具有如下行的文件。例如,UpdateSingleCache.java在评论中有以下详细信息。
另请注意:值为0表示给定值永不过期。该值仍然容易被清除 memcached用于空间和LRU(最近最少使用)注意事项。
答案 1 :(得分:0)
是, 0 应通知memcached不使此密钥过期。这并不意味着密钥将永远存在于缓存中,因为它仍然可以由于eviction而从缓存中删除。
如果您发现SSM不尊重 0 ,请举报错误。