Могу ли я установить глобальный TTL в redis?

Можно ли установить глобальный TTL в redis? Вместо того, чтобы устанавливать TTL каждый раз, когда я устанавливаю ключ.

Я googled, но не могу найти подсказки. Так что это не может быть сделано?

Спасибо.

Ответы

Ответ 1

Нет, у Redis нет понятия глобального/стандартного TTL и да, вам нужно установить его для каждой клавиши независимо. Однако, в зависимости от ваших требований и того, что вы пытаетесь сделать, могут быть другие способы достижения вашей цели. По-другому, зачем вам это нужно?

Например, если вы хотите использовать Redis в качестве кеша и не беспокоиться о необходимости удаления "старых" элементов, вы можете просто установить maxmemory_policy в allkey-lru. Это приведет к выселению наименее недавно используемых ключей всякий раз, когда память Редиса исчерпана.

EDIT: для получения дополнительной информации см. полезные ссылки в комментариях ниже от @arganzheng и @Kristján, а также встроенную документацию в redis.conf конфигурационный файл.

Ответ 2

Если вы устанавливаете ключ, вы можете установить TTL в одно и то же время: посмотреть команду set

вы можете сделать это с помощью скриптов (на linux like - в течение 60 секунд):

for k in `redis-cli --raw keys '*'` ; do redis expire $k 60;done