spring-mvc - 将缓存 Redis 过期时间设置为 1 年

标签 spring-mvc caching redis cache-expiration

如何设置Redis Cache过期时间为1年?

我试图将 xml 配置上的 long 值设置为:31556952000(1 年),但随后它捕获了一个 Integer 类型无法识别的异常值为整数。我试着在 Google 上搜索,它说整数最大值高达 2147483647,这意味着,如果我设置为该最大值,我的缓存只会在 24 天后过期。

这是我的applicationContext.xml(我省略了不必要的代码):

    ...
    <cache:annotation-driven />

    <bean id="redisCacheMap" class="java.util.HashMap">
        <constructor-arg index="0" type="java.util.Map">
            <map key-type="java.lang.String" value-type="java.lang.Integer">
                <entry key="ruleCache" value="86400"/>
            </map>
        </constructor-arg>
    </bean>
    ...

上面的代码配置为将 ruleCache 的到期时间设置为仅 1 天(86400 毫秒)。

这有可能吗?谢谢。

最佳答案

Redis 接受整数值(最大为 2 147 483 647)作为过期命令。单位是秒,不是毫秒,所以1年是31556952而不是31556952000,而且是整数。

如果你想让你的 map 访问Long,也许你可以调整你的配置:

<map key-type="java.lang.String" value-type="java.lang.Long">

关于spring-mvc - 将缓存 Redis 过期时间设置为 1 年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28085785/

相关文章:

javascript - 在 Angular 中解析 n 级深度 JSON

java - Spring MVC 处理 dao.EmptyResultDataAccessException

java - Memcached 中的多个缓存

php - 如何通过 Yii 中的配置禁用缓存?

php - doctrine 2 和 zend framework 2 如何使用缓存?

Symfony2、RabbitMQ 和 Redis throttle

java - 在 Spring Boot 中为 @WebMvcTest 禁用 Spring Security 配置类

Spring MVC 的状态为 404

redis - MISCONF Redis配置为保存RDB快照,但目前无法持久化到磁盘

Redis数据库文件(dump.rdb)删除95%key后不缩水