Что такое Redis
Есть традиционные ACID реляционные базы данных такие как MySQL, PostgreSQL, Oracle и др. Они надежны и стабильны. Сама аббревиатура ACID описывает требования к транзакционной системе (Atomicity — Атомарность, Consistency — Согласованность, Isolation — Изолированность, Durability — Долговечность). Их основная задаче не просто хранить данные, а хранить с максимальной надежностью. У них есть основной недостаток, они очень медленные.
Есть очень быстрые хранилища типа ключ-значение, например Redis. Он очень быстрый за счет предельной простоты и отказа от надежности. Несложно привести несколько примеров задач где нужна производительность в ушерб надежности:
- Для хранения пользовательских сессий, HTML-фрагменты веб-страниц или товары корзины интернет-магазина
- Для хранения промежуточных данных, поток сообщений на стене, голосовалки, таблицы результатов
- Как брокер сообщений
- Как СУБД для небольших приложений, блогов
- Для кэширования данных из основного хранилища, что значительно снижает нагрузку на реляционную базу данных
- Для хранения «быстрых» данных, когда важны скорость и критичны задержки передачи
Redis — это не реляционная структура данных в памяти, используемая в качестве базы данных. Данные хранятся в виде пары ключ-значение. При этом хранилище умеет масштабироваться путем репликации между серверами. Redis сохраняет все данные в памяти, что позволяет сделать доступ к данным максимально быстрым по сравнению с другими базами данных.
Redis довольно дружелюбен для разработчиков, поскольку поддерживает большинство языков высокого уровня, таких как Python, JavaScript, Java, C, C++, PHP.