如何将Redis缓存过期设置为1年?
我尝试将xml配置上的long
值设置为:31556952000
(1年),但之后它捕获了一个异常类型,Integer无法将值识别为Integer。我尝试在Google上搜索,并且它说Integer最大值最多为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毫秒)。
有可能吗?感谢。
答案 0 :(得分:3)
对于expire命令,Redis接受整数值(最大值为2 147 483 647)。单位是秒,而不是ms,所以1年是31556952而不是31556952000,它适合整数。
如果您希望地图访问Long,也许您可以调整您的配置:
<map key-type="java.lang.String" value-type="java.lang.Long">