У меня простая установка 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
что позволит удалить любой ключ, причем в первую очередь будут удалены те, которые не использовались недавно.