Что такое Redis

В статье мы расскажем о Redis и о том, какие данные она способна обрабатывать.

Что такое Redis

Redis (англ. REmote DIctionary Server) — это нереляционная система управления базами данных, которая написана на языке C. Любая база данных, созданная в Redis, работает по принципу “ключ-значение” (хеш-таблицы).

что такое редис 

Linux или Windows: Redis

Преимущества Redis

Чтобы понять, зачем нужен Redis, рассмотрим его преимущества. По ним можно определить, подходит ли облачная СУБД для вашего проекта:

  • Асинхронная репликация, которая позволяет копировать информацию на взаимосвязанные серверы. Это позволяет распределить запросы равномерно между несколькими серверами и увеличить скорость чтения данных.  

  • Поддержка разнообразных структур данных. Обычно СУБД работают с ограниченным количеством типов данных. Redis способен работать со многими наборами данных: строки, списки, множества, хеши и т.д. Подробнее о них расскажем ниже.

  • Масштабируемость. Редис позволяет настроить кластерную архитектуру: это позволяет приложениям работать стабильно и повышает их надежность. Кластеры поддерживают гибкую настройку по принципам горизонтального и вертикального масштабирования.

  • Функциональность. В Redis можно создать сложный и одновременно компактный код, чтобы использовать и хранить данные в БД, а также обеспечить простой доступ к ним. Это достигается за счет хеша данных. Доступные языки программирования в Redis — это Java, JavaScript, Python, Node.js, C++, PHP, Ruby, Go и другие.

  • Высокая производительность. Основные данные в Редис хранятся в кэше — это значит, что их не нужно перемещать на диск. Кэширование уменьшает задержку ядра: благодаря этому система может обрабатывать около миллиона запросов в минуту.

Для чего применяется Redis

Рассмотрим, настройка какого функционала возможна в Redis:

  • Кэширование данных. Redis cache способствует снижению нагрузки на приложение, хранилище и сетевую инфраструктуру в целом. Это позволяет уменьшить расходы на оборудование, так как дополнительные ресурсы сервера не потребуются. 
  • Возможность работы с крупными приложениями. Редис равномерно распределяет трафик средствами асинхронной репликации. О ней мы рассказывали выше.
  • Хранение сессий. Масштабируемость и отказоустойчивость позволяют Редис удобно хранить сессии пользователей: например, части HTML-кода, содержимое корзины в интернет-магазине и другое
  • Хранение промежуточных данных — тех, которые накапливаются на сервере постепенно, по мере активности пользователей. Это могут быть результаты голосования из опросов или таблица со спортивными результатами на соревнованиях.
  • Хранение данных на сервере для быстрой обработки. На них опираются при аналитике. Этот функционал используется для сервисов с потоковой передачей информации. Один из самых популярных примеров подобной передачи — онлайн-игры. 
  • Машинное обучение. Редис сохраняет информацию в скоростном хранилище. По принципу работы это хранилище данных схоже с ОЗУ в компьютере. Редис обрабатывает большой объём данных и делает принятие решений автоматическим.
  • Брокер сообщений. Благодаря равномерному распределению трафика в Redis, можно снизить нагрузку на почтовые сервисы. Для отправки сообщения не потребуется много времени на ресурсозатратные операции: маршрутизацию, поиск получателя и другие.
  • Создание чатов и очередей. Высокопроизводительный Редис позволяет создавать новостные ленты, обновлять ленты комментариев и чаты в режиме реального времени.
  • Таблицы лидеров в играх. В СУБД можно создавать файлы ранжированных списков: чтобы изменить результат одного пользователя, не нужно править таблицу целиком.

Чтобы запустить Redis, используйте команду:

redis-server

Как устроена структура хранения данных в Redis

Рассмотрим типы данных, которые используются в Redis.

Строки

Строки — это базовый тип данных для всех СУБД, в том числе и Redis. Чаще всего их используют для таких действий, как:

  • сбор информации о покупке товаров и услуг в режиме онлайн,

  • настройка очередей: обмена сообщениями или управления заданиями,

  • хранение пользовательских сессий.

Максимальная длина строки в Редис — 512 мегабайт.

Чтобы вызвать строку, потребуется следующая команда:

GET string_name

Вместо string_name укажите нужную строку.

Для удаления строки используйте команду:

DEL string_name

Вместо string_name укажите нужную строку.

Списки

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

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

Чтобы добавить строку в начало списка, выполните команду:

lpush list_name “value”

Где:

  • list_name — название списка,

  • value — строка, которую нужно добавить.

Чтобы записать строку в конец списка, выполните команду:

rpush list_name “value”

Где:

  • list_name — название списка,

  • value — строка, которую нужно добавить.

Множества

Множества помогают выполнять сложные операции: пересечение элементов и их объединение. Также в Редис присутствует функция SADD, которая позволяет исключить повторы и проверить значения на уникальность.

Множества подходят для следующих задач:

  • отслеживания уникальных IP-адресов посетителей сайта,

  • настройки стоп-слов в комментариях с помощью команды SET,

  • анализа поисковых запросов.

Хеши

Хеш представляет собой таблицу соответствий формата “поле-значение”. Одно такое соответствие называется хеш-значением. Таблицы соответствия необходимы для представления объектов. Объясним на примере.

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

Хеш-таблицы Redis могут включать в себя 2³²-1 хеш-значений — около четырех миллиардов пар формата “поле-значение”.

Полный список возможностей и принципы работы с Redis представлены в официальной документации.

Если вы не нашли ответ, спросите у нас!
Написать в поддержку