политика истечения срока действия Redis
Redis истекает в: все структуры данных в Redis можно установить время истечения срока действия, придет время , он будет автоматически удален.
Redis является однопоточным, как обеспечить линию , чтобы гарантировать , что при удалении выдыхаемого считыватель ключей не появляется Катон?
1, коллекция ключа истек
Redis будет каждый настроить срок действия ключа в отдельный словарь, Redis будет регулярно пересекать словарь , чтобы удалить просроченный ключ
политики удаления: в основном регулярно удалять (фокус) и инертным удалены (фрагментарный процесс)
инертное удаление: ключ запроса истекло , когда ключ доступа клиента, он будет удалять с истекшим сроком
2, регулярные политики сканирования
Redis по умолчанию 10 раз в секунду, жадная стратегия, используемых при сканировании следующих шагов:
- Из истекшей словаря случайным образом выбраны 20 ключ
- 20 Удалить ключ в ключ истекло
- Если это отношение больше , чем 1/4 истек ключ, а затем повторите шаги (1)
Для того , чтобы гарантировать , что есть поток застрял явление, алгоритм увеличивает верхний предел времени сканирования, по умолчанию не будет превышать 25мс
Примечания:
ключ в настройках Redis истек когда время следует избегать большого количества срока действия ключа происходит в то же время, большое количество ключа истекло в то же время приведет к чтению и письма Катона.
Другой случай Катон связано при удалении ключа менеджера памяти часто вернуть страницу памяти, которая будет иметь некоторое потребление процессора.
Если необходимо удалить ключ в то же время, время истечения срока действия следует случайный набор диапазон, время хаотизации истекает в ближайшее время
3, узлы от политики истечения срока
В Redis не истекает из сканирования узла, обработки истекли от узла пассивен, добавите дель команды в файле AOF истекает, когда главный ключ узла, все синхронизируется с подчиненными узлов