Издаване на СУБД Redis 7.4, преминаваща на проприетарни лицензи

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

Redis 7.4 е обявен за първата версия, разпространявана с нови условия на лицензиране - вместо предишната лицензия BSD, кодът сега е достъпен под проприетарните лицензи RSALv2 (Redis Source Available License v2) и SSPLv1 (Server Side Public License v1). Онези, които желаят да продължат да използват кода под лицензията BSD, могат да се възползват от проектите Valkey (форк, разработван с участието на Amazon, Google, Oracle, Ericsson и Snap), Redict (форк от автора на потребителския интерфейс Sway и езика Hare), Garnet (СУБД от Microsoft, съвместима с Redis) или KeyDB (високопроизводителен форк на Redis 5 от Snapchat).

Лицензиите SSPL и RSAL водят до дискриминация на определени категории потребители, което не позволява да се считат за открити или свободни. По своите цели и двете лицензии си приличат, а разликите се свеждат до това, че лицензията SSPL е основана на копилефт лицензията AGPLv3, докато лицензията RSAL е основана на пермисивната лицензия BSD. Лицензията RSAL позволява използване, изменение, разпространение и интегриране на кода в приложения, с изключение на случаите, когато тези приложения са търговски или се използват за предоставяне на управлявани платени услуги. Лицензията SSPL допълнително съдържа изискване за доставка под същата лицензия не само на кода на самото приложение, но и на изходните текстове на всички компоненти, участващи в предоставянето на облачна услуга.

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

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

Ключови промени във функционалността на Redis 7.4:

  • Добавена възможност за ограничаване на времето на живот на отделни полета в хешове, структури за съхранение на групирани колекции записи във формат ключ-стойност. В отличие от назначаването на времето на живот на ключа, предложената промяна позволява да се задават не само общи времеви интервали за всички свързани полета, но и индивидуални стойности на времето на живот на отделни полета, което може да се използва, например, за осигуряване на по-кратък жизнен цикъл на токените за удостоверяване в сравнение с другите данни от сесията.
  • Предложени са нови типове данни bfloat16 и float16, оптимизирани за използване в приложения за машинно обучение и позволяващи намаляване на потреблението на памет в сравнение с предишно наличните типове float32 и float64. При използване в хешове новите типове предлагат възможност за намаляване на потреблението на памет в векторни БД с 47%, да намалят времето за извличане на данни с 59% и да съкратят времето за създаване на индекси с 58% в сравнение с типа float64.
  • Оптимизирано е използването на вторични индекси. При заявки за информация от вторични индекси вече не е необходимо да се екранират отделни специални символи, като „@“ и „.“, а са добавени двойни кавички за обрамчване на порция данни. Също така, значително е подобрено индексирането на празни и липсващи полета – за създаване на индекси и формулиране на заявки, които отчитат наличието на полета, е предложено новото ключово слово INDEXMISSING и функцията ismissing(). Добавени са нови оператори INTERSECT и DISJOINT за улесняване на търсенето на геопространствени данни. Добавени са възможности за анализ на потреблението на памет от индекса.
  • Добавена е поддръжка на филтри за отсяване на елементи в добавените набори от данни, например, при периодично зареждане на данни от сензори в БД може да се добави филтър за игнориране на стойности, чийто времеви интервал спрямо предишното значение е по-малък от определена прагова стойност.
  • Прекратена е поддръжката на тригери и функции на езика JavaScript, предложени в миналото издание.

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

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