Redis. Просто о сложном

Сегодня хотим рассказать вам о базе данных под названием Redis.

Redis (Remote Dictionary Server, «удалённый серверный словарь») - это высокоскоростная база данных, работающая по принципу NOSQL. Данные в ней хранятся в виде ключ - значение. В такой базе данных можно хранить, например, временные данные или сессии PHP.

Эта база данных была придумана итальянским разработчиком Сальваторе Санфилиппо. Сальваторе тогда пытался улучшить масштабируемость своего итальянского стартапа. Столкнувшись с некоторыми проблемами, он принял решение собственноручно создать её решение. Именно тогда он придумал первую экспериментальную версию Redis, которую позже перевел на язык C и реализовал первый тип данных - список. После нескольких недель успешного использования разработчик решил открыть его исходных код.

Вскоре компания  VMware наняла Санфилиппо для плодотворной реализации проекта. С 2013 года проект спонсировала дочерняя компания VMware - Pivotal Software. После 2015 года за спонсорство Redis взялась компания Redis Labs. Именно под её руководством свет увидела версия Redis 5.0 представляющая Redis Stream - новую структуру данных, которая позволяет хранить несколько полей и строковых значений с автоматической последовательностью, основанной на времени, с одним ключом.

В июне 2020 года Сальваторе Санфилиппо покинул компанию. Проект Redis развивается уже без его участия.

Salvatore Sanfilippo

Как именно работает Redis?

В отличии от других БД Redis хранит данные в памяти, а не на дисках или твердотельных накопителях, как другие базы данных. Так как Redis не нуждается в доступе к диску, все данные он получает за миллисекунды. Отсутствие какой-либо задержки в получении данных является главной фишкой  Redis. Но это, конечно, не всё, на что способна эта БД.

В число возможностей Redis также входит:

1. Гибкая структура данных

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

1. Строки – текстовые или двоичные данные размером до 512МБ

2. Списки – коллекции строк, упорядоченные в порядке добавления

3. Множества – неупорядоченные коллекции строк с возможностью пересечения, объединения и сравнения с другими типами множеств

4. Сортированные множества – множества, упорядоченные по значению

5. Хэш-таблицы - структуры данных для хранения списков полей и значений

6. Битовые массивы – тип данных, который дает возможность выполнять операции на уровне битов

7. Структуры HyperLogLog – вероятностные структуры данных, служащие для оценки количества уникальных элементов в наборе данных

2. Простота и удобство

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

3. Возможность улучшений

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

4. Репликация и постоянное хранение

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

Для чего Вы можете использовать Redis?

  • Для хранения пользовательских сессий
  • Для хранения промежуточных данных
  • Как СУБД для небольших приложений, блогов
  • Для кэширования данных из основного хранилища, что значительно снижает нагрузку на реляционную базу данных
  • Для хранения «быстрых» данных — когда важны скорость и критичны задержки передачи.

Вывод:

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

Кстати, поддержка баз данных Redis теперь есть и у нас в ИксФайвИкс.
Мы даже написали для Вас подробную инструкцию о том, как установить Redis. Прочесть её Вы можете вот тут.

До скорой встречи!