The OpenNET Project / Index page

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

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

30.04.2020 23:05

Подготовлен релиз СУБД Redis 6.0, относящейся к классу NoSQL-систем. Redis предоставляет функции для хранения данных в формате ключ/значение, расширенные поддержкой структурированных форматов данных, таких как списки, хэши и множества, а также возможностью выполнения на стороне сервера скриптов-обработчиков на языке Lua. Код проекта поставляется под лицензией BSD. Дополнительные модули, в которых предлагаются расширенные возможности для корпоративных пользователей, такие как RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, с прошлого года поставляются под проприетарной лицензией RSAL. Развитие открытых вариантов данных модулей под лицензией AGPLv3 продолжено проектом GoodFORM.

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

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

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

  • По умолчанию предложен новый протокол RESP3, но установка соединения начинается в режиме RESP2 и клиент переключается на новый протокол только если при согласовании соединения использована новая команда HELLO. RESP3 позволяет напрямую возвращать сложные типы данных без необходимости конвертации общих массивов на стороне клиента и разделяя возвращаемые типы.
  • Поддержка списков контроля доступа (ACL), позволяющих точно определить какие операции можно выполнять клиенту, а какие нет. ACL также дают возможность защититься от возможных ошибок при разработке, например, обработчику, который выполняет только операцию BRPOPLPUSH, можно запретить выполнение других операций, и в случае, если в рабочем коде будет случайно забыт добавленный при отладке вызов FLUSHALL, это не приведёт к проблемам. Реализация ACL не сопряжена с дополнительными накладными расходами и практически не влияет на производительность. Для ACL также подготовлены интерфейсные модули, дающие возможность создавать собственные методы аутентификации. Для просмотра всех зафиксированных нарушений ACL предусмотрена команда "ACL LOG". Для генерации непредсказуемых сессионных ключей добавлена команда "ACL GENPASS", использующая HMAC на основе SHA256.
  • Поддержка SSL/TLS для шифрования канала связи между клиентом и сервером.
  • Поддержка кэширования данных на стороне клиента. Для согласования кэша на стороне клиента с состоянием БД доступно два режима: 1. Запоминание на сервере ключей, которые ранее запрашивал клиент, чтобы информировать его о потере актуальности записи в клиентском кэше. 2. Механизм "broadcasting", при котором клиент подписывается на определённые префиксы ключей и сервер уведомляет его в случае изменения ключей, подпадающих под эти префиксы. Плюс режима "broadcasting" в том, что на сервере не тратится дополнительная память на хранение карты прокэшированных на стороне клиента значений, а минус в увеличении числа передаваемых сообщений.
  • Брокер сообщений Disque, позволяющий использовать Redis для обработки очередей сообщений, вынесен из базового состава в отдельный модуль.
  • Добавлен Cluster Proxy, прокси для кластера серверов Redis, позволяющий организовать работу клиента с несколькими серверами Redis, как с одним экземпляром. Прокси может маршрутизировать запросы к узлам с необходимыми данными, мультиплексировать соединения, переконфигуририровать кластер в случае выявления сбоев узлов, выполнять запросы, охватывающие несколько узлов.
  • Значительно улучшен API для написания модулей, по сути превративший Redis во фреймворк, позволяющий создавать системы в форме модулей-надстроек.
  • Реализован режим репликации, при котором файлы RDB сразу удаляются после того как были использованы.
  • Улучшен протокол репликации PSYNC2, что дало возможность чаще выполнять частичную ресинхронизацию, за счёт повышения шансов выявления смещения, общего для реплики и мастера.
  • Ускорена загрузка файлов RDB. В зависимости от начинки файла ускорение составляет от 20 до 30%. Значительно ускорено выполнение комадны INFO при наличии большого числа подключённых клиентов.
  • Добавлена новая команда STRALGO с реализацией сложных алгоритмов обработки строк. В настоящий момент доступен только один алгоритм LCS (longest common subsequence), который может быть полезен при сравнении последовательностей РНК и ДНК.


  1. Главная ссылка к новости (http://antirez.com/news/132...)
  2. OpenNews: Компания Redis Labs перевела модули с Commons Clause на собственную несвободную лицензию
  3. OpenNews: Выпуск СУБД Redis 5.0
  4. OpenNews: Изменение лицензионной политики проекта Redis
  5. OpenNews: 75% общедоступных серверов Redis поражены вредоносным ПО
  6. OpenNews: Релиз документо-ориентированной СУБД MongoDB 4.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/52848-redis
Ключевые слова: redis, nosql, database
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (38) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 23:12, 30/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Нужно.
     
     
  • 2.34, Аноним (34), 18:38, 02/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    не нужно
     

  • 1.2, Аноним (2), 23:48, 30/04/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –16 +/
     

     ....ответы скрыты (5)

  • 1.3, RNZ (ok), 23:50, 30/04/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    > "и гарантирует сохранность БД в случае аварийного завершения работы"

    Нет, не гарантирует.

     
     
  • 2.9, Аноним (9), 03:55, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в appendonly режиме гарантирует, но это надо диск резиновый.
     
     
  • 3.10, Аноним (10), 07:28, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Иногда даже с append only это чудо превращается в тыкву. Из практики, это случается примерно раз в полнолуние когда погода на марсе дождливая и день пятница 13е но случается. Единственное что можно сделать это дропнуть файл (Redis уже 5й или 6й год в пользовании как общий cache. )
     
     
  • 4.12, Аноним (9), 07:39, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    appendfsync no?
     
     
  • 5.13, Аноним (9), 07:40, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в смысле, если оно в no, то не удивительно.

    с everysecond не припоминаю, чтобы развалилось. только если вместе с фс

     

  • 1.11, Онаним (?), 07:39, 01/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Ну с монгой всё понятно, а вот это чудовище реально зачем?
     
     
  • 2.14, Servey (?), 07:56, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так монгодб вроде рип, из за лицензии.
     
     
  • 3.19, нах. (?), 13:15, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    моргни, если тебя кто-то заставляет насильно апгрейдиться с четвертой версии.
    Да и лицензия там в общем-то - в попытках нае...развести на бабки амазон - с характерным результатом, что тот выкатил свою замену. Для домашнего васян-сервиса пользуйся, не обляпайся.

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

     
     
  • 4.24, Весельчак У (?), 14:11, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кинуть на деньги Амазон? А не Амазон ли случаем брал опенсорсные разработки и делал из них свои закрытые поделки? Ладно бы они свои разработки открыли, но нет.
     
     
  • 5.28, нах. (?), 19:05, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Кинуть на деньги Амазон?

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

    Результат немного не соответствовал ожидаемому - у жядного амазона деньгов оказалось достаточно много для того, чтобы заплатить своим разработчикам за собственную разработку, которая по отзывам в целом и получше монги будет (ну и, естественно, лучше ложится в амазоновские сервисы). А жаждущих акаунта в редислабе с rtt 150 вместо 15 - что-то как-то так и не прибавилось.

    > А не Амазон ли случаем брал опенсорсные разработки и делал из них свои закрытые поделки?

    нет, он просто продавал (и продает, со старой версией) сервис - инстанс с уже установленой и настроенной монгой, разворачиваемый одним вызовом апи, и сразу готовый принимать запросы, и люди этот сервис готовы были оплачивать - хотя им, разумеется, никто не мешает вместо этого купить у амазона отдельную виртуалку с линуксом и самостоятельно там монгу окучивать и поддерживать. Только дороже обойдется, поэтому нафиг этот геморрой за деньги не нужен.
    Теперь продает подключение к своей базе. А глупые и жадные опенсосеры - открыто cocнули.


     
     
  • 6.35, лютый жабби__ (?), 21:24, 02/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >А глупые и жадные опенсосеры - открыто cocнули.

    Акции монги вполне себе растут, быстрее орацля даже )

    Самое главное, есть ещё умные люди, которые не пользуются этими вашими облачками. У них как было монго, так и есть. Кстати, 4.2.

     
  • 2.15, Аноним (15), 09:00, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    в основном для кэширования.

    А вот монга зачем нужна, не понятно.
    В режиме одного узла монга хуже Postgres с JSONB
    В режиме кластера - хуже Cassandra, HBase и тд в зависимости от задачи.

     
     
  • 3.21, RNZ (ok), 13:26, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > в основном для кэширования.
    > А вот монга зачем нужна, не понятно.
    > В режиме одного узла монга хуже Postgres с JSONB
    > В режиме кластера - хуже Cassandra, HBase и тд в зависимости от
    > задачи.

    Забудьте уже эту cassandra тоже, есть scylla

     
  • 3.32, funny.falcon (?), 14:07, 02/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Но монга удобнее в использовании, чем Cassandra и HBase, для прикладных задач. И, в отличие от PostgreSQL, имеет встроенный хорошо отлаженный фейловер и вменяемое встроенное шардирование.

    Т.е. если вы лично рассматриваете «вот здесь она хуже так, а вон там так», то на практике для многих она оказывается золотой серединой. (Ну или каким-то ее приближением)

     
  • 3.36, лютый жабби__ (?), 21:26, 02/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >В режиме одного узла монга хуже Postgres с JSONB

    3.14-жжж

    >В режиме кластера - хуже Cassandra, HBase

    Сравнивать монгу и кассандру может только чел, который обе СУБД только на картинке видел.

     
  • 2.16, Аноним (16), 10:58, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Сейчас я тебе покажу зачем, лови - https://redisson.org
     
     
  • 3.25, Онаним (?), 18:22, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ох ты, какой костыль знатный. Спасибо.
     
  • 2.18, нах. (?), 13:08, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну с монгой всё понятно, а вот это чудовище реально зачем?

    затем что не всем нужна именно таза банных - кому-то нужен просто кэш, который незачем хранить на диске (в котором монга норовит прогрызть дыру).

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

    P.S. потом она ухитрится не заметить split-brain, и рад ты станешь немножко меньше.

      

     
     
  • 3.26, Онаним (?), 18:23, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > P.S. потом она ухитрится не заметить split-brain, и рад ты станешь немножко
    > меньше.

    Вот только хотел сказать, но ты меня опедерил :)

     

  • 1.17, Бэтман (?), 11:59, 01/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > ssl/tls

    Ну наконец-то

     
     
  • 2.27, Онаним (?), 18:24, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> ssl/tls
    > Ну наконец-то

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

     
     
  • 3.29, нах. (?), 19:15, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Пусть ещё QUIC добавят.

    между прочим, это одно из тех немногих мест, где от него могла бы быть польза (хотя весьма сомнительная, учитывая его файрволонебезопасность)
    Но его добавят не раньше, чем готовая реализация будет в виде нескучной библиотечки.

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

    для неумеющих настраивать vpn, когда стойка и машина - арендованные, а на аренду изолированного сегмента денег пожабились. Ну или когда всерьез используется редисовый geodistribution (а vpn настраивать мы так и не научились).

     

  • 1.20, SkyNet (??), 13:22, 01/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Уже 6-ая версия, а всё пишут, что "похожий на Memcached".
     
     
  • 2.22, нах. (?), 13:31, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    инвесторы любят большие бессмысленные числа. А версия на самом деле - 1.0.6, ничего там отродясь глобально не менялось.

     
     
  • 3.23, Аноним (23), 13:36, 01/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >  ничего там отродясь глобально не менялось.

    заметил крупнейший иксперт опеннетов по всем вопросам

     
  • 3.30, Аноним (30), 12:17, 02/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Фига себе не менялось. Одни стримы, которыми в простых случаях можно кафку заменить, чего мтоят
     
     
  • 4.31, нах. (?), 12:23, 02/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ну ладно, ладно, 1.6 (хотя вот конкретно в шестой - чего? 1.3.6 в лучшем случае.) Да, добавлена пара очень нужных (1% пользующихся или раздумывающих не попользовать ли) фич, обычный minor.

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

     
     
  • 5.37, Аноним (9), 02:16, 03/05/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Почему же, все по semver-у. Формат хранилища изменился так, что с предыдущей версией работать не будет - - увеличивают первую циферку.
     

  • 1.33, Коровавирус (?), 15:09, 02/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Хоспади, как всё раздуто.
     
  • 1.38, Аноним (38), 13:34, 06/05/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В последних версиях Memcached поддерживает возможность сохранить содержимое кэша на диске, правда там конечно далеко не такие гарантии.
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру