The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

15.07.2017 09:36  Выпуск СУБД Redis 4.0 с новым движком репликации и поддержкой модулей

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

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

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

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

  • Реализован новый движок репликации - PSYNC2 (Partial Replication v2), предлагающий более эффективные методы согласования обмена данными и доставки изменений между первичными и вторичными узлами. Вторичные узлы (slave) теперь могут переводиться в категорию первичных (master) без проведения полной ресинхронизации и могут на лету принять на себя репликацию на другие вторичные узлы. Кроме того, вторичные узлы теперь могут быть временно остановлены, например для проведения обновления, а после возвращения в строй доведены до актуального состояния при помощи частичной ресинхронизации, охватывающей только изменившиеся за время простоя данные.

    Более того, первичный узел может быть переведён во вторичный и присоединён к новому первичному узлу с выполнением лишь частичной ресинхронизации или первичный и вторичный узлы могут поменяться местами. Значительно изменена работа при организации цепочек репликации, в которых одни вторичные узлы (sub-slave) реплицируются от других вторичных узлов. Поток репликации для slave и sub-slave теперь не отличается и идентичен потоку, отдаваемому главным первичным узлом. Новый протокол репликации обратно совместим с прошлыми выпусками, что позволяет использовать Redis 4.0 на slave-серверах, подключаемых к master-узлам на основе старых выпусков Redis;

  • Обеспечена возможность подключения дополнительной функциональности через модули. Redis теперь может применяться как фреймворк для создания сетевых сервисов - через модули могут быть добавлены новые возможности и структуры хранения данных, реализованы новые типы и вынесены в отдельные потоки медленные обработчики, которые не будут блокировать основной поток запросов. API для создания модулей абстрагирован от ядра Redis, что позволяет использовать один и тот же модуль с разными версиями Redis без внесения в него изменений;
  • Улучшена работа кэша, который теперь поддерживает алгоритм замещения элементов LFU (Least-Frequently Used), который обеспечивает вытеснение на основе частоты обращения к элементу, а не на основе времени последнего обращения (LRU, Least Recently Used);
  • Операции DEL, FLUSHDB и FLUSHALL теперь могут выполняться в фоновом режиме с выносом обработчика в отдельный поток, не блокирующий основной процесс. Для фонового удаления вместо DEL предлагается команда UNLINK, а для фонового выполнения команд FLUSH* необходимо указать опцию ASYNC;
  • Представлена новая команда SWAPDB, которая позволяет полностью и мгновенно заменить одно содержимое БД на другое. Замена выполняется атомарно без ощутимых задержек;
  • Реализован новый комбинированный режим сброса данных на диск, который сочетает использование полного дампа RDB и AOF-лога (Append Only File), отражающего изменения, внесённые с момента создания дампа;
  • В число поддерживаемых платформ добавлены платы Raspberry Pi, работа на которых теперь проверяется для каждого выпуска Redis;
  • Добавлена новая команда MEMORY и её варианты "MEMORY USAGE", "MEMORY OVERHEAD" и "MEMORY DOCTOR", предоставляющие средства для анализа использования памяти в Redis и диагностики проблем;
  • Расширены возможности Redis Cluster, в котором появилась поддержка запуска узлов в контейнерах с NAT и контейнерах Docker, улучшен код определения сбоев, снижена нагрузка на CPU;
  • Добавлена поддержка активной дефрагментации памяти, которая позволяет выполнять дефрагментацию налету без остановки работы, если применяется система распределения памяти Jemalloc (в Linux по умолчанию);
  • Снижено потребление памяти, в процессе работы тот же набор данных теперь занимает меньше ОЗУ;
  • Модернизирован формат дампов RDB, в котором теперь поддерживаются 64-разрядные размеры блоков и предварительно отсортированные метаданные;
  • Увеличена эффективность реализации хэш-таблиц (тип dict);
  • Добавлена защита от межпротокольных атак, в которых используется сходство элементов протокола "POST" и "Host:" в HTTP и Redis, что позволяет отправить POST-запрос к Redis на локальной системе из запущенного в браузере web-приложения;
  • Команды RPUSHX и LPUSHX теперь могут принимать произвольное число элементов;
  • Серьёзно переработаны некоторые внутренние подсистемы.


  1. Главная ссылка к новости (https://groups.google.com/foru...)
  2. OpenNews: Критическая уязвимость в СУБД Redis
  3. OpenNews: Выявлено вредоносное ПО, использующее уязвимые СУБД Redis для майнинга криптовалют
  4. OpenNews: Выявлено около 6000 скомпрометированных установок СУБД Redis
  5. OpenNews: Выпуск СУБД Redis 3.2
  6. OpenNews: Представлена Serenity, Redis-совместимая транзакционная СУБД с дисковым хранилищем
Лицензия: CC-BY
Тип: Программы
Ключевые слова: redis, nosql
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Arcade, 10:32, 15/07/2017 [ответить] [смотреть все]
  • +1 +/
    Ух ты, как раз ругался на топорность мастер-слейв репликации и сложность впихивания этого в продакшн. Будем посмотреть.
     
     
  • 2.5, dep, 13:18, 15/07/2017 [^] [ответить] [смотреть все] [показать ветку]
  • –3 +/
    Что именно для вас там было топорно?
     
  • 2.24, Zoolander, 12:14, 19/07/2017 [^] [ответить] [смотреть все] [показать ветку]
  • –3 +/
    Что за дурацкая привычка коверкать русский язык Будем смотреть - так правильн... весь текст скрыт [показать] [показать ветку]
     
  • 1.2, Аноним, 10:33, 15/07/2017 [ответить] [смотреть все]  
  • –5 +/
    Заметил, что memcached последнее время возродился и активно развивается -https ... весь текст скрыт [показать]
     
     
  • 2.3, пох, 11:11, 15/07/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +8 +/
    > Заметил, что memcached последнее время возродился

    да уж охренеть как "возродился" - в issues мега-проблемы 2012го года (особенно хороша - "мы жрем # в конфиге как управляющий символ" - ну никак с 15го года не одолеть ее), в коммитах - какая-то сомнительная возня непойми с чем и ради чего.
    issues:
    Add drop_privileges() for Linux needs review/testing
    #95 opened Dec 15, 2014 by viraptor
    - вот с 2014го needs. Никак двадцать строчек ниасилить. Единственный автор с того самого года ниасилил себе тестовый билдхост под линуксом...

    > в котором закрыли DoS-уязвимость CVE-2017-9951

    которая закрывала DoS-уязвимость CVE-2016-8705, да так и ниасилила.

    с другой стороны, если вас беспокоят уязвимости в memcached - вы ох..ли...э... вы выбрали совершенно неподходящий для вашей задачи сервис хранения.

    И чем меньше не в меру активные рукожoпы лазят в этот код, тем лучше. А там - все равно перейдем поголовно на redis. Вот ровно потому, что у него есть вменяемые разработчики и твиттер с вмварью им платит.

     
     
  • 3.9, KonstantinB, 20:26, 15/07/2017 [^] [ответить] [смотреть все]  
  • +/
    У memcached нет конфига Всякие там обертки из дистрибутивов - это привет мейнте... весь текст скрыт [показать]
     
     
  • 4.13, пох, 12:43, 16/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    вас обманули Поинтересуйтесь содержимым https github com memcached memcached... весь текст скрыт [показать]
     
     
  • 5.14, Аноним, 12:49, 16/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Это как раз дебиановский скрипт в репозиторий memcached его сунули относительно... весь текст скрыт [показать]
     
  • 5.18, Y, 07:08, 17/07/2017 [^] [ответить] [смотреть все]  
  • +/
    Не гони на юниты Во первых тебя никто не заставляет отказываться от конфигов е... весь текст скрыт [показать]
     
     
  • 6.19, пох, 09:37, 17/07/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    там _есть_ конфиг - Феерически бессмысленный И рекомендация если что - поме... весь текст скрыт [показать]
     
  • 1.4, Аноним, 11:26, 15/07/2017 [ответить] [смотреть все]  
  • –1 +/
    хорошие новости
     
  • 1.6, Аноним, 14:26, 15/07/2017 [ответить] [смотреть все]  
  • –5 +/
    Зачем людей обманываете ... весь текст скрыт [показать]
     
     
  • 2.7, пох, 16:23, 15/07/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    а что не так AOF в fsync mode вполне себе гарантирует и консистентность, и заве... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.8, Аноним, 17:14, 15/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    что зачем некоторым вот нужна полная гарантия, ессно в рамках возможности желез... весь текст скрыт [показать]
     
     
  • 4.12, Аноним, 03:32, 16/07/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    'mount -o sync' спасёт отца русской демократии.
     
  • 4.20, Аноним, 12:45, 17/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Интересное чтиво от автора redis - http antirez com news 60 Автор redis-а не ... весь текст скрыт [показать]
     
     
  • 5.21, Аноним, 13:03, 17/07/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Комментатором на opennet-е и маминым админам этого к сожалению не понять
     
     
  • 6.22, пох, 13:37, 17/07/2017 [^] [ответить] [смотреть все]  
  • +/
    > Комментатором на opennet-е и маминым админам этого к сожалению не понять

    куда им... они даже не замечают, что по ссылке некропостинг 2013го года, и речь там о redis 2 (кто им тогда вообще пользовался, блин, и зачем?)

    Сегодня никто не мешает применять его в такой позе, будет ничуть не хуже всеми любимого постгреза, и чинить в случае чего легче - "но зачем?"

    Кто может нарисовать вменяемый use-case и как в нем выглядят структуры данных?

     
  • 5.23, Аноним, 18:54, 17/07/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Эта заметка была написана 4 года назад, когда в Redis был только достаточно топо... весь текст скрыт [показать]
     
  • 1.15, Аноним, 12:52, 16/07/2017 [ответить] [смотреть все]  
  • –1 +/
    >в случае проблем позволяя откатить изменения

    Какой командой?

     
     
  • 2.17, ваш К.О., 01:42, 17/07/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    > Какой командой?

    DISCARD жеж
    Только это для проблем в логике приложения, а не проблем с базой, как можно было подумать.

     
  • 1.16, Аноним, 12:54, 16/07/2017 [ответить] [смотреть все]  
  • –1 +/
    >и ведение на диске лога изменений

    Как это включить?

     
  • 1.25, eka33, 06:10, 22/11/2017 [ответить] [смотреть все]    [к модератору]  
  • +/
    ★★★★

    ✅✅✅✅ 15 ООО рублей в день работая 15-20 минут за компьютером или ноутбуком!

    ✅✅✅✅ Pабoта для жeлaющих сaйт   http://delocentr.ru

    ★★★★

    _________________________________________________________

    46856

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor