Издаване на Redis 6.0

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

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

За управление на данни се предоставят команди като увеличаване/намаляване, стандартни операции със списък и множество (обединение, пресичане), преименуване на ключове, множество селекции и функции за сортиране. Поддържат се два режима на съхранение: периодично синхронизиране на данни на диск и поддържане на регистър на промените на диска. Във втория случай се гарантира пълна безопасност на всички промени. Възможно е да се организира репликация на данни 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. Механизмът за „излъчване“, при който клиентът се абонира за определени префикси на ключове и сървърът го уведомява, ако ключовете, които попадат под тези префикси, се променят. Предимството на режима "излъчване" е, че сървърът не губи допълнителна памет за съхраняване на карта на стойностите, кеширани от страна на клиента, но недостатъкът е, че броят на предадените съобщения се увеличава.
  • Брокерът за съобщения Disque, който ви позволява да използвате Redis за обработка на опашки от съобщения, е премахнат от основната структура в отделен модул.
  • Добавено Клъстерен прокси, прокси за клъстер от Redis сървъри, позволяващ на клиента да организира работа с няколко Redis сървъра, сякаш са един екземпляр. Проксито може да насочва заявки към възли с необходимите данни, мултиплексни връзки, да преконфигурира клъстера, ако бъдат открити повреди на възли, и да изпълнява заявки, които обхващат множество възли.
  • API за писане на модули е значително подобрен, като по същество превръща Redis в рамка, която ви позволява да създавате системи под формата на допълнителни модули.
  • Въведен е режим на репликация, при който RDB файловете се изтриват незабавно след като са били използвани.
  • Протоколът за репликация PSYNC2 е подобрен, което направи възможно извършването на частична ресинхронизация по-често, чрез увеличаване на шансовете за идентифициране на отмествания, общи за репликата и главния.
  • Зареждането на RDB файлове е ускорено. В зависимост от съдържанието на файла, ускорението варира от 20 до 30%. Изпълнението на командата INFO е значително ускорено, когато има голям брой свързани клиенти.
  • Добавена е нова команда STRALGO с внедряване на сложни алгоритми за обработка на низове. Понастоящем е наличен само един LCS (най-дълга обща подпоследователност) алгоритъм, който може да бъде полезен при сравняване на РНК и ДНК последователности.

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

Добавяне на нов коментар