Установите срок хранения Cache Redis на 1 год

Как установить срок действия Redis Cache на 1 год?

Я пытался установить long значение в конфигурации xml: 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 ответ

Решение

Redis принимает целочисленное значение (максимум до 2 147 483 647) для команды истечения срока действия. Единица измерения - второе, а не мс, поэтому 1 год равен 31556952 вместо 31556952000, и он вписывается в целое число.

Если вы хотите, чтобы ваша карта имела доступ к Long, возможно, вы можете адаптировать свой конфиг:

<map key-type="java.lang.String" value-type="java.lang.Long">
Другие вопросы по тегам