Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以为@Cacheable by key设置TTL吗?_Java_Spring_Caching_Redis_Configuration - Fatal编程技术网

Java 我可以为@Cacheable by key设置TTL吗?

Java 我可以为@Cacheable by key设置TTL吗?,java,spring,caching,redis,configuration,Java,Spring,Caching,Redis,Configuration,我使用@Cacheable(name=“rates”,key=“#car.name”) 我可以为此缓存设置TTL吗?TTL是按车来的,你叫什么名字 比如说 我想设置name=“rates”TTL 60秒 运行java: 时间:0 car.name=1,返回“11” 时间:30 car.name=2,返回“22” 时间:60 car.name=1把钥匙应该没了。 时间:90 car.name=2钥匙应该没了 我想为多个名称设置多个TTL name=“rates2”TTL 90秒。您不能@Cache

我使用
@Cacheable(name=“rates”,key=“#car.name”)

我可以为此缓存设置TTL吗?TTL是按车来的,你叫什么名字

比如说

我想设置
name=“rates”
TTL 60秒 运行java:

时间:0 car.name=1,返回“11” 时间:30 car.name=2,返回“22”

时间:60 car.name=1把钥匙应该没了。
时间:90 car.name=2钥匙应该没了

我想为多个名称设置多个TTL


name=“rates2”
TTL 90秒。

您不能@Cacheable的是静态配置,您需要的是更多的动态配置。请记住,Spring只提供了适合所有提供者的抽象。您应该为不同的条目指定不同的区域,或者执行后台进程使需要失效的键失效

静态配置时,生存时间设置基于每个区域

如果您离开静态配置,您可以在插入条目时设置过期时间,但随后您将离开spring(一个大小以适合所有条目,请记住),进入缓存提供程序的领域,可以是任何Redis、Hazelcast、Ehcache、infinispan,并且每个都有不同的契约

以下是来自Hazelcast的IMap接口合同示例:

IMap::put(Key, Value, TTL, TimeUnit) 
但这与春天无关

使用Spring意味着您可以执行以下操作:

    @Cacheable(name="floatingRates")
List<Rate> floatingRates;
    @Cacheable(name="fixedRates")
List<Rate> fixedRates;
@Cacheable(name=“floatingRates”)
列出忘恩负义者;
@可缓存(name=“fixedRates”)
列出固定利率;
然后为每个定义TTL