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

Set Cache Redis Expiration to 1 year

如何设置Redis缓存有效期为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,符合整数。

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

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