Как уберечь память от непопулярного / холодного Redis? - PullRequest
8 голосов
/ 06 мая 2020

У нас много экземпляров Redis, потребляющих ТБ памяти и сотни машин.

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

Мы не можем удалить данные или перейти на другую базу данных. Есть ли способ достичь наших целей?

PS: Мы думаем о продукте, совместимом с Redis, который может «смешивать» память и диск, то есть хранить горячие данные в памяти, но холодные на диске, и ИСПОЛЬЗУЯ ОГРАНИЧЕННЫЕ РЕСУРСЫ . Нам известно решение RedisLabs «Redis on Fla sh (ROF)», но оно использует RocksDB, что очень недружелюбно к памяти. Нам нужен продукт с очень ограниченным объемом памяти. Кроме того, у ROF нет открытого исходного кода: (

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

1 Ответ

0 голосов
/ 15 мая 2020

Ваша проблема может быть решена с помощью подхода оркестратора: масштабирование, когда не используется, масштабирование, когда требуется.

Реализация во многом зависит от вашей инфраструктуры, но базовым требованием является надлежащий мониторинг использования экземпляров Redis . Исходя из этого, если вы работаете в Kubernetes, вы можете использовать автомасштабирование подов .

В противном случае вы можете реализовать Consul и использовать HAProxy для обработки логики выключения / раскрутки c. Отправной точкой для этой стратегии является эта статья .

Конечно, идея Райнера об использовании свопа - быстрая победа, если она работает по назначению!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...