Uitgave van database Systeem Redis 6.0

Voorbereid database release Redis 6.0, dat behoort tot de NoSQL-systemen. Redis levert functies die vergelijkbaar zijn met Memcached voor het opslaan van gegevens in het sleutel-waardeformaat, uitgebreid met ondersteuning voor gestructureerde gegevensformaten zoals lijsten, hash-tables en sets, evenals de mogelijkheid om server-side scripts in Lua uit te voeren. De projectcode wordt geleverd is uitgebracht onder de BSD-licentie. Extra modules die geavanceerde mogelijkheden voor zakelijke gebruikers aanbieden, zoals RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, zijn sinds vorig jaar worden geleverd onder de proprietaire RSAL-licentie. De ontwikkeling van open-source versies van deze modules onder de AGPLv3-licentie gaat verder met het project GoodFORM.

In tegenstelling tot Memcached biedt Redis permanente opslag van gegevens op de schijf en garandeert het behoud van de database in het geval van een onverwachte afsluiting. De broncode van het project wordt verspreid onder de BSD-licentie. Clientbibliotheken zijn beschikbaar voor de meeste populaire talen, waaronder Perl, Python, PHP, Java, Ruby en Tcl. Redis ondersteunt transacties, waarmee een groep commando’s in ƩƩn stap kan worden uitgevoerd, met inachtneming van consistentie en volgorde (commando’s van andere aanvragen kunnen zich niet tussen de uitvoering van een bepaalde set commando’s bevinden), en in geval van problemen kunnen wijzigingen worden teruggedraaid. Alle gegevens worden in zijn geheel in het RAM-geheugen gecached.

Voor gegevensbeheer zijn er commando's beschikbaar, zoals incrementeer/decrementeer, standaardbewerkingen op lijsten en verzamelingen (unificatie, intersectie), het hernoemen van sleutels, meerdere opvragingen en sorteermethoden. Er zijn twee opslagmodi: periodieke synchronisatie van gegevens naar de schijf en het bijhouden van een logboek van wijzigingen op de schijf. In de tweede geval wordt volledige veiligheid van alle wijzigingen gegarandeerd. Master-slave replicatie van gegevens naar meerdere servers is mogelijk, uitgevoerd in een niet-blokkerende modus. Er is ook een 'publish/subscribe'-berichtenmodus beschikbaar, waarin een kanaal wordt gecreƫerd, waarvan berichten naar klanten worden verspreid na hun abonnement.

Belangrijkste verbeteringen, toegevoegd in Redis 6.0:

  • Standaard wordt het nieuwe RESP3-protocol voorgesteld, maar de verbinding wordt gestart in de RESP2-modus en de client schakelt alleen over naar het nieuwe protocol als bij het onderhandelen van de verbinding het nieuwe commando HELLO is gebruikt. RESP3 maakt het mogelijk om complexe datatypes direct terug te geven zonder de noodzaak om algemene arrays aan de klantzijde te converteren en scheidt de teruggegeven types.
  • Ondersteuning voor toegangscontrolelijsten (ACL), waarmee precies kan worden bepaald welke bewerkingen de client kan uitvoeren en welke niet. ACL's bieden ook bescherming tegen mogelijke fouten tijdens de ontwikkeling; bijvoorbeeld, een handler die enkel de BRPOPLPUSH-bewerking uitvoert, kan worden verboden om andere bewerkingen uit te voeren. Dit voorkomt dat, als een vergeten FLUSHALL-aanroep in de productieve code staat, dit problemen veroorzaakt. De implementatie van ACL's brengt geen extra overhead met zich mee en heeft vrijwel geen invloed op de prestaties. Voor ACL's zijn ook interface-modules voorbereid die het mogelijk maken om eigen authenticatiemethoden te creĆ«ren. De 'ACL LOG'-opdracht is beschikbaar om alle geregistreerde ACL-overtredingen te bekijken. Voor het genereren van onvoorspelbare sessiesleutels is de 'ACL GENPASS'-opdracht toegevoegd, die HMAC op basis van SHA256 gebruikt.
  • Ondersteuning SSL/TLS voor het versleutelen van de communicatie tussen de client en de server.
  • Ondersteuning caching van gegevens aan de clientzijde. Voor de afstemming van de cache aan de clientzijde met de status van de DB zijn er twee modes beschikbaar: 1. Het onthouden op de server van sleutels die eerder door de client zijn aangevraagd, zodat deze kan worden geĆÆnformeerd over de veroudering van een opname in de clientcache. 2. Het 'broadcasting'-mechanisme, waarbij de client zich abonneert op bepaalde sleutelprefixen en de server deze op de hoogte stelt als de sleutels die onder deze prefixen vallen, worden gewijzigd. Het voordeel van de 'broadcasting'-modus is dat de server geen extra geheugen hoeft te besteden aan het opslaan van de kaart van gecacheerde waarden aan de clientzijde, terwijl het nadeel ligt in het verhoogde aantal verzonden berichten.
  • De berichtbroker Disque, die Redis mogelijk maakt voor het verwerken van berichtenqueues, is uit de basiscomponenten gehaald in de een afzonderlijke module.
  • Toegevoegd Cluster Proxy, proxy voor een cluster van Redis-servers, waardoor de werking van de client met meerdere Redis-servers als ƩƩn enkele instantie kan worden georganiseerd. De proxy kan verzoeken routeren naar de knooppunten met de benodigde gegevens, verbindingen multiplexen, het cluster opnieuw configureren in geval van knooppuntuitval, en verzoeken uitvoeren die meerdere knooppunten dekken.
  • De API voor het schrijven van modules is aanzienlijk verbeterd, wat Redis in feite heeft omgevormd tot een framework voor het creĆ«ren van systemen in de vorm van module-uitbreidingen.
  • Een replicatiemodus is geĆÆmplementeerd waarbij RDB-bestanden onmiddellijk worden verwijderd nadat ze zijn gebruikt.
  • Het replicatieprotocol PSYNC2 is verbeterd, waardoor het mogelijk is om vaker gedeeltelijke hersynchronisatie uit te voeren dankzij een verhoogde kans om een offset te detecteren die gemeenschappelijk is voor de replica en de master.
  • De laadtijd van RDB-bestanden is versneld. Afhankelijk van de inhoud van het bestand bedraagt de versnelling tussen de 20 en 30%. De uitvoering van het INFO-commando is aanzienlijk versneld bij een groot aantal aangesloten cliĆ«nten.
  • Er is een nieuwe opdracht STRALGO toegevoegd met de implementatie van complexe algoritmen voor tekenbewerking. Op dit moment is er slechts ƩƩn algoritme beschikbaar: LCS (longest common subsequence), dat nuttig kan zijn bij het vergelijken van RNA- en DNA-sequenties.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster