Redis ограничение памяти только для чтения - PullRequest
0 голосов
/ 17 апреля 2020

Я знаю о главном способе, как Redis обрабатывает клавишу при достижении предела памяти. Однако ...

Что если я хочу, чтобы Redis самостоятельно "заблокировал" его, сделав его доступным только для чтения, до того момента, когда некоторые ключи получат сигнал удаления. Единственная причина в том, что все данные в нашем Redis Cluster очень важны, поэтому мы готовы сделать их готовыми в любое время. Но OF C, если предел памяти достигнут, нам нужно сэкономить некоторое пространство, но без потери данных, решаемых Redis, а скорее пользователем.

Пример: пользователь просматривает свою статистику c окно на нашем сервере приложений. За этим мы храним все данные в Redis и отображаем их для него. Когда пользователь закрывает веб-приложение, я освобождаю все ключи, связанные с его сеансом. Я хочу отбросить эти ключи, когда будет достигнут предел памяти, поэтому никто не должен удалять «случайные» ключи или наименее часто используемые.

Это возможно, или я просто мечтаю?

1 Ответ

0 голосов
/ 17 апреля 2020

maxmemory-policy определяет, как ваш кеш ведет себя, когда достигает максимума памяти. Параметр по умолчанию - noeviction, что означает, что он не будет пытаться автоматически выселить какие-либо предметы на основе TTL или LRU и т. Д. c. По сути, это означает, что кеш доступен только для чтения, вы не можете добавлять новые элементы, но можете по-прежнему читать из него существующие элементы.

Очевидно, что некоторый внешний процесс или пользователь должен будет удалить некоторые элементы, прежде чем вы сможете добавить новые данные к нему.

https://raw.githubusercontent.com/antirez/redis/5.0/redis.conf (поиск УПРАВЛЕНИЕ ПАМЯТЬЮ в этом файле конфигурации)

...