Базы данных: Redis

Быстрая и простая база данных.
1 минута37371

Здравствуйте!

Сегодня поговорим о не такой уж редкой базе данных Redis. Сегодня ее часто можно увидеть в проектах любого размера, но не как основное хранилище данных, а для побочных целей.

Redis — быстрая база данных вида ключ-значение, хранящая данные в памяти. Скорость работы достигается ценой надёжности хранения данных. Но об этом позже.

Данные

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

Данные хранятся очень просто: нет ни связей, ни индексов, ничего. Если что-то нужно, придется реализовать это самим. Redis — это простой инструмент.

Хранение

Redis хранит данные в оперативной памяти, но периодически сохраняет их на диск, чтобы восстановить при перезапуске. Стандартные настройки сделаны для скорости, а не надежности, поэтому при перезапуске часть данных может потеряться.

Этого можно избежать, включив режим AOF. Тогда каждая команда от клиента сперва будет записываться в лог на диске, что позволит потом восстановить все данные. Цена за это — резкая деградация производительности: иногда скорость может упасть в 10 раз.

Обычно Redis не использует AOF, а вместо этого в фоне сохраняет данные на диск. Есть возможность настроить то, как часто будут сохранятся данные по времени и количеству изменений.

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

Фичи

Еще несколько полезных вещей, которые умеет Redis.

Транзакции
Как и все остальное, реализованы просто и обеспечивают атомарное выполнение набора команд. Изоляции нет, но в Redis она и не нужна, так как Redis — однопоточное приложение, и транзакции не выполняются параллельно.

Репликация
Реализована как master-slave: на мастер можно писать и читать, слейвы — только чтение. Настраивается легко, работает безотказно.

PubSub
Позволяет клиентам подписываться на обновления ключей. На основе этого можно построить систему обмена сообщениями, например.

Узнать больше

Официальный сайт: redis.io

Книга о Redis, перевод: github.com/kondratovich/the-little-redis-book/blob/master/ru/redis-ru.pdf

Исходный код: github.com/antirez/redis

Redis — маленькая, но быстрая база данных для хранения данных, которые не жалко потерять: счетчики, временные данные. Сегодня ее часто можно встретить в самых разных проектах.

Для новичков - бесплатный онлайн-интенсив по основам веб-разработки.

базы данныхredisnosqlweb_developer
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!