Verze DBMS , NoSQL systém. Redis poskytuje funkce podobné Memcachedu pro ukládání dat klíč/hodnota, vylepšené o podporu strukturovaných datových formátů, jako jsou seznamy, haše a množiny, a také o možnost spouštět skripty obslužných rutin na straně serveru v jazyce Lua. Kód projektu Licencováno pod BSD. Další moduly nabízející pokročilé funkce pro podnikové uživatele, jako například RediSearch, RedisGraph, RedisJSON, RedisML a RedisBloom, jsou k dispozici od loňského roku. pod proprietární licencí RSAL. Vývoj open-source verzí těchto modulů pod licencí AGPLv3 pokračuje v rámci projektu. .
Na rozdíl od Memcachedu Redis trvale ukládá data na disk a zaručuje integritu databáze v případě havárie. Zdrojový kód projektu je distribuován pod licencí BSD. Klientské knihovny jsou k dispozici pro většinu populárních jazyků, včetně Perlu, Pythonu, PHP, Javy, Ruby a Tcl. Redis podporuje transakce, které umožňují provedení skupiny příkazů v jednom kroku, což zaručuje konzistenci a sekvenční provádění (příkazy z jiných požadavků nemohou kolidovat) dané sady příkazů a umožňuje vrácení změn v případě problému. Všechna data jsou plně uložena v mezipaměti RAM.
Pro správu dat jsou k dispozici příkazy jako zvýšení/snížení, standardní operace se seznamy a sadami (sjednocení, průnik), přejmenování kláves, vícenásobný výběr a funkce řazení. Jsou podporovány dva režimy úložiště: pravidelná synchronizace dat na disk a údržba protokolu změn na disku. V druhém případě je zaručena úplná bezpečnost všech změn. Je možné organizovat replikaci dat master-slave na několik serverů, prováděnou v neblokovacím režimu. K dispozici je také režim zasílání zpráv „publikovat/předplatit“, ve kterém je vytvořen kanál, z něhož jsou zprávy distribuovány klientům prostřednictvím předplatného.
Klíč , přidáno v Redisu 6.0:
- Ve výchozím nastavení je nabízen nový protokol RESP3, ale navazování připojení začíná v režimu RESP2 a klient přepne na nový protokol pouze v případě, že je během vyjednávání připojení použit nový příkaz HELLO. RESP3 umožňuje přímý návrat komplexních datových typů bez nutnosti převodu sdílených polí na straně klienta a oddělených návratových typů.
- Podpora seznamů pro řízení přístupu (), což vám umožňuje přesně definovat, které operace klient může a nemůže provádět. ACL také poskytují možnost ochrany před potenciálními chybami při vývoji. Například obslužné rutině, která provádí pouze operaci BRPOPLPUSH, lze zakázat provádění dalších operací. Pokud je volání FLUSHALL přidané během ladění v produkčním kódu omylem zapomenuto, nezpůsobí to problémy. Implementace ACL nezahrnuje žádné další režijní náklady a prakticky nemá žádný vliv na výkon. Pro ACL byly také vyvinuty moduly rozhraní, které umožňují vytvářet vlastní metody ověřování. Pro zobrazení všech zaznamenaných porušení ACL je k dispozici příkaz „ACL LOG“. Pro generování nepředvídatelných klíčů relace byl přidán příkaz „ACL GENPASS“, který používá HMAC založený na SHA256.
- Podpora šifrovat komunikační kanál mezi klientem a serverem.
- Ukládání dat do mezipaměti na straně klienta. Pro zajištění konzistence mezi mezipamětí na straně klienta a databází jsou k dispozici dva režimy: 1. Ukládání klíčů dříve požadovaných klientem na server, aby byl upozorněn, když záznam v mezipaměti klienta již není platný. 2. Mechanismus „vysílání“, ve kterém se klient přihlásí k odběru specifických prefixů klíčů a server ho upozorní, když se klíče odpovídající těmto prefixům změní. Výhodou režimu „vysílání“ je, že server nespotřebovává další paměť k ukládání mapy hodnot uložených v mezipaměti na straně klienta, ale nevýhodou je zvýšený počet přenášených zpráv.
- Broker zpráv Disque, který umožňuje používat Redis ke zpracování front zpráv, byl přesunut z hlavního balíčku. .
- Přidat , proxy pro cluster Redis serverů, umožňuje klientovi spravovat více Redis serverů, jako by se jednalo o jednu instanci. Proxy může směrovat požadavky na uzly s požadovanými daty, multiplexovat připojení, překonfigurovat cluster v případě selhání uzlů a spouštět požadavky napříč více uzly.
- API pro psaní modulů bylo výrazně vylepšeno, čímž se Redis v podstatě proměnil ve framework, který umožňuje vytvářet systémy ve formě doplňkových modulů.
- Byl implementován režim replikace, ve kterém jsou soubory RDB okamžitě po použití smazány.
- Replikační protokol PSYNC2 byl vylepšen, aby umožňoval častější částečnou resynchronizaci zvýšením pravděpodobnosti detekce společného posunu mezi replikou a hlavním serverem.
- Načítání souborů RDB bylo zrychleno. V závislosti na obsahu souboru se zrychlení pohybuje od 20 do 30 %. Provádění příkazu INFO bylo výrazně zrychleno při velkém počtu připojených klientů.
- Byl přidán nový příkaz STRALGO, který implementuje komplexní algoritmy pro zpracování řetězců. V současné době je k dispozici pouze jeden algoritmus, LCS (longest common subsequence), který může být užitečný pro porovnávání sekvencí RNA a DNA.
Zdroj: opennet.ru
