Издаване на СУБД Redis 8.4

Издаден е новият релиз на СУБД Redis 8.4, която принадлежи към класа NoSQL системи. Redis предоставя функции за съхранение на данни във формат ключ/стойност, разширени с поддръжка на структурирани формати на данни, като списъци, хешове и множествa, както и възможности за изпълнение на скриптове на сървъра на Lua. Кодът на проекта е написан на езика Си и се разпространява под лиценз AGPLv3.

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

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

Ключови промени в Redis 8.4:

  • Добавена е командата "FT.HYBRID" с реализация на хибридно търсене, комбиниращо възможностите на полнотекстово и векторно търсене в една заявка, което отчита както пряките съвпадения, така и близостта по смисъл. Поддържат се възможности за агрегиранe на резултатите с синтаксис като при командата "FT.AGGREGATE".
  • Повишена е пропускната способност в типичните приложения на Redis за кеширане. Например, при натоварвания, които включват 10% операции за запис (SET) и 90% операции за четене (GET) и съхранение на низови стойности с размер 1 Кб, увеличението на пропускната способност е 30%.
    Издаване на СУБД Redis 8.4
  • Повишена производителността на операциите за търсене (FT.SEARCH) и агрегиране на резултати (FT.AGGREGATE). В натоварени системи с голям брой паралелни заявки се наблюдава увеличаване на пропускната способност и намаляване на закъсненията до 4.7 пъти при извършване на търсене и до 1.4 пъти при агрегиране на резултати.
    Издаване на СУБД Redis 8.4
  • Извършена е оптимизация на разпределянето на паметта при изпълнение на заявки и предоставена е възможност за настройка на поведението при изчерпване на наличната памет (OOM, out-of-memory).
  • Намалено е потреблението на памет при съхранение на малки низове (до 7 байта) в структури с тип JSON. Например, масив в JSON, съдържащ 500 малки елемента във формат ключ/стойност, сега заема с 37% по-малко памет.
  • Повишена е ефективността на съхранение на числови масиви JSON, всички елементи в които имат един и същ тип (ако преди за всеки елемент в подобен масив се запазваше тип и стойност, сега типът се запазва един път за целия масив). В проведен тест подобни масиви с милион хомогенни елементи сега изискват с 50-92% по-малко памет в зависимост от типа.
  • В командата SET са добавени опциите IFEQ, IFNE, IFDEQ и IFDNE, които позволяват да се справим с една команда за актуализиране на низовия ключ в ситуации, когато свързаната с него стойност не е била променена от друг клиент след извличането му.
  • Добавена е командата XDELEX за атомарно изтриване на низов ключ, ако свързаната с него стойност не е била променена след извличането.
  • Добавена е командата DIGEST, която връща хеш от стойността, свързана с посочения ключ.
  • В командата XREADGROUP е добавена опцията „CLAIM “ за четене на както на чакащи (idle pending), така и на постъпили (incoming) съобщения.
  • Добавена е командата MSETEX за атомарно задаване или обновяване наведнъж на няколко низови ключа, както и обновяване на времето им на живот.
  • Добавен е механизъм за атомарна миграция на слотове между възли в клъстера (ASM — Atomic Slot Migration), наподобяващ пълна синхронна репликация, но работещ на ниво отделни слотове за съхранение на данни. Добавена е командата CLUSTER MIGRATION, с помощта на която може да се импортират слотове от други възли, да се проследи напредъкът на миграцията и при необходимост да се маркират за изчакване на изпълнението на операцията по миграция.
  • Добавена команда CLUSTER SLOT-STATS за оценка на статистиката в кластера по отделните слотове, като брой ключове, натовареност на CPU и мрежов вход/изход.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster