Новая версия СУБД Redis 7.0 уже выпущена, Redis предоставляет функции для хранения данных в формате «ключ-значение», расширенные поддержкой форматов структурированных данных, таких как списки, хэши и наборы, а также возможностью запуска драйверов сценариев Lua на стороне сервера.
В отличие от систем хранения в оперативной памяти, таких как Memcached, Redis обеспечивает постоянное хранение данных на диске и обеспечивает безопасность базы данных в случае нештатного завершения работы. Исходные тексты проекта распространяются под лицензией BSD.
Клиентские библиотеки доступны для самых популярных языков, включая Perl, Python, PHP, Java, Ruby и Tcl. Redis поддерживает транзакции, которые позволяют выполнять группу команд за один шаг, обеспечивая согласованность и непротиворечивость (команды из других запросов не могут блокировать) выполнение заданного набора команд, а в случае возникновения проблем позволяет выполнить откат перемены. Все данные полностью кэшируются в оперативной памяти.
Основные новые функции Redis 7.0
В этой новой версии СУБД, которая представлена добавлена поддержка серверных функций, в отличие от ранее поддерживаемых скриптов Lua, функции не зависят от приложения и предназначены для реализации дополнительной логики что расширяет возможности сервера.
Функции обрабатываются неразрывно с данными и по отношению к базе данных, а не к приложению, включая репликацию и постоянное хранилище.
Еще одна новинка, которая выделяется в Redis 7.0, — это Второе издание ACL, что позволяет управлять доступом к данным на основе ключей и позволяет определять различные наборы правил доступа для команд с возможностью привязки нескольких селекторов (наборов разрешений) к каждому пользователю. Каждый ключ может быть идентифицирован с определенными разрешениями, например, вы можете ограничить доступ только чтением или записью к определенному подмножеству ключей.
В дополнение к этому отмечается, что Redis 7.0 обеспечивает уна фрагментарная реализация парадигмы распространения сообщений Опубликовать-Подписка, работающий на кластере, где сообщение отправляется на конкретный узел, к которому привязан канал сообщения, после чего это сообщение перенаправляется на остальные узлы, включенные в корпус. Клиенты могут получать сообщения, подписавшись на канал, подключившись как к основному узлу, так и к второстепенным узлам раздела.
Также подчеркивается, что обеспечена возможность обработки нескольких конфигураций одновременно в одном вызове CONFIG SET/GET и что в утилиту redis-cli были добавлены опции «–json», «-2», «–scan», «–functions-rdb».
По умолчанию, доступ к настройкам и командам, влияющим на безопасность, отключен для клиентов (например, отключены команды DEBUG и MODULE, запрещено изменение конфигураций с флагом PROTECTED_CONFIG). Redis-cli перестал отправлять команды, содержащие конфиденциальные данные, в файл истории.
С другой стороны, выделяется, чтоe внесена большая часть оптимизаций, направленных на повышение производительности и уменьшить потребление памяти. Например, потребление памяти значительно снижено при включенном режиме кластера, при выполнении операций копирования при записи и при работе с ключами hash и zset, а также была улучшена логика для сброса данных на диск (называется fsync).
Исправлена уязвимость CVE-2022-24735. в среде выполнения Lua-скриптов, что позволяет вам переопределить собственный Lua-код и заставить его выполняться в контексте другого пользователя, в том числе с более высокими привилегиями.
Кроме того, мы можем указать на уязвимость (CVE-2022-0543) в пакетах с Redis для Ubuntu и Debian (проблема специфична для отдельных сборок и не связана с самим Redis), что позволяет выполнять произвольный код Lua на удаленном сервере и обходить механизм изоляции песочницы среды для запуска скриптов в Redis.
Устранена уязвимость CVE-2022-24736, которая могла привести к сбою процесса сервера Redis из-за разыменования нулевого указателя. Атака осуществляется путем загрузки специально созданных Lua-скриптов.
наконец, если вы интересно узнать о нем больше, Вы можете проверить детали в следующем ссылка.
Будьте первым, чтобы комментировать