Поскольку Redis является хранилищем в памяти, вы не можете хранить большие данные, которые не соответствуют размеру памяти вашего устройства. Redis обычно работает очень плохо, когда объем хранимых данных превышает 1/3 от объема оперативной памяти. Итак, это фатальное ограничение использования Redis в качестве базы данных.
Конечно, вы можете распределить свои большие данные по нескольким экземплярам Redis, но вам придется делать все самостоятельно, вручную. Операция обычно выполняется следующим образом (при условии, что у вас есть только 1 экземпляр с начала):
- Используйте механизм главный-подчиненный для репликации данных на второй компьютер. Теперь у вас есть 2 копии одинаковых данных.
- Разорвать связь между ведущим и ведомым.
- Удалите первую половину данных (разделенных хэшированием и т. Д.) Данных на первом компьютере и удалите вторую половину данных на втором компьютере.
- Скажите всем клиентам (PHP, C и т. Д.), Что они должны работать на первом компьютере, если указанные ключи находятся на этом компьютере, в противном случае работать на втором компьютере.
Именно так масштабируется Redis! Вы также должны остановить свою службу, чтобы предотвратить любые записи во время миграции.
К опыту, с которым мы сталкиваемся, у Redis есть такой вывод: Redis не является правильным выбором для хранения данных более 30 ГБ, Redis не масштабируется, Redis вполне подходит для разработки прототипов.
Позже мы найдем альтернативу Redis, то есть SSDB (https://github.com/ideawu/ssdb), сервер leveldb, который поддерживает почти все API Redis, он подходит для хранения более 1 ТБ данных, что зависит только от размера из вас жесткий диск.