Назад | Перейти на главную страницу

Redis использует много оперативной памяти, постоянно увеличивается, пока я не перезапущу его

У меня простая установка Redis, и кажется, что она медленно съедает все больше и больше оперативной памяти с постоянным наклоном, пока я не перезапущу сервер Redis.

Я использую redis в качестве уровня кеширования, в настоящее время я не устанавливаю срок действия своих ключей, так как не думал, что это необходимо. Я думал, что Redis сбросит старые ключи или что-то в этом роде - хотя явно этого не происходит.

Как лучше всего справиться с такой ситуацией, следует ли мне установить короткое время истечения срока действия своих ключей или есть ли в redis какие-то функции, позволяющие истечь старые ключи, чтобы освободить место для новых?

Заранее спасибо!

Старая строка тега Redis: «Постоянная база данных ключ-значение со встроенным сетевым интерфейсом, написанная на ANSI-C для систем Posix».

Я считаю, что ключи по умолчанию постоянны. Вам нужно будет установить EXPIRE для ключей, которые вы действительно хотите удалить через некоторое время. Как заметил womble, это не memcached.

Для справки по командам: http://redis.io/topics/expire

Вы можете установить maxmemory в вашей конфигурации redis conf, а затем установите maxmemory-policy либо allkeys-lru или allkeys->random что позволит удалять ключи из базы данных и заставляет redis работать как кеш. Поскольку вы используете его как кеш, вы можете закомментировать все save строки, поэтому redis не будет сохраняться на диск.

Это, вероятно, самый простой способ, и вам не придется переключаться на memcached, я предлагаю allkeys-lru что позволит удалить любой ключ, причем в первую очередь будут удалены те, которые не использовались недавно.