如何设置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/