Новости и события » Hi-Tech » Выпуск СУБД Redis 5.0

Выпуск СУБД Redis 5.0

Подготовлен релиз СУБД Redis 5.0, относящейся к классу NoSQL-систем. Redis предоставляет похожие на Memcached функции для хранения данных в формате ключ/значение, расширенные поддержкой структурированных форматов данных, таких как списки, хэши и множества, а также возможностью выполнения на стороне сервера скриптов-обработчиков на языке Lua. Код проекта поставляется под лицензией BSD.

В отличие от Memcached, Redis обеспечивает постоянное хранение данных на диске и гарантирует сохранность БД в случае аварийного завершения работы. Исходные тексты проекта распространяются в рамках лицензии BSD. Клиентские библиотеки доступны для большинства популярных языков, включая Perl, Python, PHP, Java, Ruby и Tcl. Redis поддерживает транзакции, позволяющие выполнить за один шаг группу команд, гарантируя непротиворечивость и последовательность (команды от других запросов не могут вклиниться) выполнения заданного набора команд, а в случае проблем позволяя откатить изменения. Все данные в полном объеме кэшируются в оперативной памяти.

Для управления данными предоставляются такие команды, как инкремент/декремент, стандартные операции над списками и множествами (объединение, пересечение), переименование ключей, множественные выборки и функции сортировки. Поддерживается два режима хранения: периодическая синхронизация данных на диск и ведение на диске лога изменений. Во втором случае гарантируется полная сохранность всех изменений. Возможна организация master-slave репликации данных на несколько серверов, осуществляемая в неблокирующем режиме. Доступен также режим обмена сообщениями "публикация/подписка", при котором создается канал, сообщения из которого распространяются клиентам по подписке.

Ключевые улучшения, добавленные в Redis 5.0:

  • Представлен новый тип данных Stream, который можно использовать для хранения данных в форме пополняемого лога. Записи с типом Stream могут открываться только в режиме пополнения, но допускается удаление произвольных элементов из лога и имеется возможность ограничения максимального размера лога, например, можно сохранять не больше N элементов с удалением самых старых записей по мере поступления новых. Предоставляются средства для отслеживания добавления новых элементов, осуществления различных выборок данных и применения Stream в качестве системы обработки сообщений.

    Для организации совместной обработки разных частей одного потока сообщений реализована концепция Consumer Groups, при которой сообщение может снабжаться идентификатором группы и несмотря на отправку в общий поток, получить это сообщение сможет только клиент с указанным идентификатором (например, через общий поток можно организовать распределение команд среди разных обработчиков);
  • Реализованы новые API для модулей: Timers, Cluster и Dictionary;
  • В дампах RDB теперь сохраняется информация об алгоритмах замещения элементов LFU (Least-Frequently Used, вытеснение на основе частоты обращения к элементу) и LRU (Least Recently Used, вытеснение на основе времени последнего обращения);
  • Код управления кластером переписан с Ruby (redis-trib.rb) на Си и встроен в redis-cli (доступен через команду "--cluster");
  • Реализованы новые команды ZPOPMIN и ZPOPMAX, а также их блочные вариаеты BZPOPMIN и BZPOPMAX, которые извлекают и возвращают из отсортированного набора указанное число наименьших или наибольших значений;
  • Реализована вторая версия системы активной дефрагментации памяти, которая позволяет выполнять дефрагментацию налету без остановки работы, если применяется система распределения памяти Jemalloc (в Linux по умолчанию);
  • Улучшена реализация алгоритма HyperLogLog;
  • Расширены отчеты о состоянии памяти;

  • Во многие составные команды, включающие субкоманды, добавлена встроенная подсказка (субкоманда HELP);
  • Проведена оптимизация для повышения производительности в условиях частого соединения и отсоединения клиентов;

  • Менеджер распределения памяти Jemalloc обновлен до версии 5.1;

  • Добавлены команды: CLIENT UNBLOCK для досрочного снятия блокировки с соединения, выставленной при выполнении блокирующих операций (например BRPOP, XREAD, WAIT); CLIENT ID для получения идентификатора текущего соединения;

  • Добавлена развлекательная команда LOLWUT, с реализацией пасхальных яиц, которые будут меняться в каждой новой версии Redis;
  • Проведена оптимизация кода обработки сетевых соединений;
  • Выполнена работа по избавлению от терминов "master" и "slave" в коде. Команда "SLAVEOF" переименована в "REPLICAOF", а настройка "slaveof" в "replicaof" (для обеспечения совместимости поддержка "SLAVEOF" сохранена). Поддержка признака "slave" в командах INFO и ROLE пока оставлена, так как связана с большими нарушениями совместимости (в будущем планируется предложить альтернативу INFO и заменить в ROLE "slave" на "replica");
  • Расширены возможности по созданию скриптов-обработчиков на языке Lua.

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

    Тротуарная плитка: свойства, виды и преимущества

    Тротуарная плитка давно стала неотъемлемой частью городского ландшафта. Она используется не только для обустройства тротуаров, но и для мощения дворов,...

    сегодня 05:59
  • Где лечить зубы в Харькове

    Где лечить зубы в Харькове

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

    24 мая 2024
  • Перевод письменного текста

    Перевод письменного текста

    Перевод письменного текста – это процесс перевода текста на другой язык с помощью письменного переноса информации из одного языка на другой с учетом...

    4 мая 2024
  • Как создать сайт для гостиницы или посуточной аренды, бюджет

    Как создать сайт для гостиницы или посуточной аренды, бюджет

    Если вы владеете гостиничным бизнесом или бизнесом по аренде квартир посуточно или только планируете начать подобный бизнес, то у вас вполне резонно возникает...

    16 февраля 2024

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

Вверх