Ответ 1
Redis - это сервер удаленной структуры данных. Это, конечно, медленнее, чем просто хранение данных в локальной памяти (поскольку он включает в себя параллельные сеансы сокетов для извлечения/хранения данных). Однако он также обладает некоторыми интересными свойствами:
-
Доступ к Redis осуществляется всеми процессами ваших приложений, возможно, запущен на нескольких узлах (чего не может достичь местная память).
-
Хранилище памяти Redis достаточно эффективно и выполняется в отдельном процессе. Если приложение работает на платформе, чья память собирает мусор (node.js, java и т.д.), Она позволяет обрабатывать гораздо больший объем кэша/хранилища. На практике очень большие кучи плохо работают с отображенными мусором языками.
-
При необходимости Redis может сохранять данные на диске.
-
Redis - это немного больше, чем простой кэш: он предоставляет различные структуры данных, различные политики выселения элементов, блокировки очередей, pub/sub, атомарность, сценарии Lua и т.д.
-
Redis может реплицировать свою деятельность с помощью механизма master/slave для обеспечения высокой доступности.
В принципе, если вам нужно, чтобы ваше приложение масштабировалось на нескольких узлах, использующих одни и те же данные, тогда потребуется что-то вроде Redis (или любого другого удаленного хранилища ключей/значений).