Раздел 37 · Redis с нуля

Что такое Redis и зачем нужна память

junior~15 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

В двух прошлых разделах мы разбирали основные базы данных: реляционную PostgreSQL и документную MongoDB. Обе хранят данные на диске и умеют сложные запросы. Redis устроен иначе: он держит данные в оперативной памяти и отвечает за доли миллисекунды. Этот раздел про то, зачем такое хранилище нужно рядом с основной базой и как с ним работать.

Блокнот на столе и архив в подвале

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

Блокнот не заменяет архив. Если блокнот потеряется, данные восстановят из подвала. Зато заглянуть в блокнот можно за секунду.

PostgreSQL и MongoDB это архив. Redis это блокнот на столе.

Что такое Redis

Redis это сервер, который хранит данные в оперативной памяти. Как и PostgreSQL, он работает отдельной программой: приложение подключается к нему по сети и отправляет команды.

Данные в Redis лежат как в словаре: у каждого значения есть имя, по которому его кладут и достают. Такую модель называют ключ-значение. Мы встречали её в уроке про модели NoSQL.

127.0.0.1:6379> SET greeting hello
OK
127.0.0.1:6379> GET greeting
"hello"

SET кладёт значение hello под ключ greeting, GET достаёт его обратно. Ни таблиц, ни схемы, ни SELECT. В этом и сила, и ограничение: найти «все значения, где встречается слово hello» Redis не умеет, он знает только ключи.

Значение не обязано быть строкой. Redis хранит несколько структур данных: строки, списки, множества, хеши, упорядоченные множества, потоки. Каждой посвящён свой урок этого раздела. Из-за этого Redis иногда называют сервером структур данных.

урок из курса

Урок из курса «Redis с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.