6

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

我尝试将longxml 配置上的值设置为:31556952000(1 年),但随后它捕获了一个异常,即 Integer 类型无法将该值识别为 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 毫秒)。

有可能这样做吗?谢谢。

4

1 回答 1

8

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

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

<map key-type="java.lang.String" value-type="java.lang.Long">
于 2015-01-22T11:09:41.060 回答