我在Spring boot
项目中使用this client连接到我的群集上运行的memcached
实例。
一切正常但是到目前为止我只能设置所有缓存的到期日期,这对我来说不方便,我希望能够设置自定义到期日期,就像它可以在{{{{{{{{ 1}} memcached
。
有人有任何想法吗?客户看起来并不灵活。
答案 0 :(得分:2)
您也可以使用memcached-spring-boot库为每个缓存名称设置自定义过期时间。您可以通过memcached.cache.expirations
配置属性来执行此操作。 E.g:
memcached.cache:
servers: example1.com:11211,example2.com:11211
mode: static
expirations: 86400, cache_name1:3600, cache_name2:108000
此处86400
代表全局过期(用于所有缓存)。如果您希望每个缓存具有不同的过期值,则可以将其设置为cache_name1:3600
(名称为cache_name1
的缓存将在3600
秒内到期)。
在这种情况下,您的缓存配置在源代码之外,因此您可以更轻松地为每个不同的环境配置不同的到期时间(例如 dev , prod )。
答案 1 :(得分:0)
这是因为Spring没有对自定义过期的本机支持。我建议你使用simple-spring-memcached
和Spring Boot来启用自定义过期。如果您使用此库,您有两个选择:
simple-spring-memcached
提供的注释。它们支持自定义过期。使用ExtendedSSMCacheManager
提供的simple-spring-memcached
与Spring Boot的本机缓存集成。它允许您将到期时间设置为缓存名称的一部分,如下所示:
@Cacheable("default#3600")
public ComplexSerializableResult compute(Long input) {
// ...
return result;
}
此处default
是缓存名称,过期时间设置为3600秒。
有关如何使用Spring Boot设置simple-spring-memcached
的详细信息,请参阅SSM wiki或MemCachier的Spring Boot documentation。
有关如何在Spring Boot中使用simple-spring-memcached
的分步说明,请参阅此tutorial。它是为Heroku平台创建的,但独立于Heroku。