gpt4 book ai didi

redis - 将 Spring 缓存与 Redis 结合使用时,在特定时间设置过期键

转载 作者:IT王子 更新时间:2023-10-29 06:00:57 25 4
gpt4 key购买 nike

我正在使用 spring 缓存抽象注解将缓存应用于我的服务方法。

由于我使用 Redis 作为缓存存储,我想使用在特定时间使缓存过期的选项,因为 Redis 支持该选项。 Redis 中的 expireat 命令可用于在将来的某个时间设置过期时间。

我不确定在使用 RedisCache 时如何为缓存中的键执行此操作。

我尝试通过创建一个 bean 来自定义 RedisCacheManager。

我看到公开了一个 getNativeCache() 方法。但我没有找到任何方法来使用它设置 expireat 的值。

如果有一种方法可以自定义 RedisCacheManager 以便特定缓存的所有键都使用相同的过期时间,请告诉我。

最佳答案

@Bean (name="cacheManager")
public RedisCacheManager cacheManager(RedisConnectionFactory connectionFactory) {
RedisCacheConfiguration conf_ready_info = RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofMillis(50000));

RedisCacheConfiguration conf_base_info = RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofMillis(60000));

Map<String, RedisCacheConfiguration> cacheConfigurations = new HashMap<String, RedisCacheConfiguration>();
cacheConfigurations.put("base_info", conf_base_info);
cacheConfigurations.put("ready_info", conf_ready_info);

return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(connectionFactory)
.withInitialCacheConfigurations(cacheConfigurations).build();
}


@Cacheable(value = "ready_info", key = "#aid")
public String findByAid(String aid) throws Exception {
String readyInfo = "";
return readyInfo;
}

关于redis - 将 Spring 缓存与 Redis 结合使用时,在特定时间设置过期键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51660160/

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