Установите срок хранения 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">