将Cache Redis Expiration设置为1年

时间:2015-01-22 09:58:41

标签: spring-mvc caching redis cache-expiration

如何将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毫秒)。

有可能吗?感谢。

1 个答案:

答案 0 :(得分:3)

对于expire命令,Redis接受整数值(最大值为2 147 483 647)。单位是秒,而不是ms,所以1年是31556952而不是31556952000,它适合整数。

如果您希望地图访问Long,也许您可​​以调整您的配置:

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