Redis 6.0-release

Voorbereid DBMS-release Redis 6.0, behorend tot de klasse van NoSQL-systemen. Redis biedt Memcached-achtige functies voor het opslaan van sleutel-/waardegegevens, uitgebreid door ondersteuning voor gestructureerde gegevensformaten zoals lijsten, hashes en sets, en de mogelijkheid om Lua-handlerscripts op de server uit te voeren. Projectcode geleverde onder BSD-licentie. Extra modules die geavanceerde mogelijkheden bieden voor zakelijke gebruikers zoals RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom sinds vorig jaar geleverd onder de eigen RSAL-licentie. De ontwikkeling van open versies van deze modules onder de AGPLv3-licentie wordt door het project voortgezet Goede vorm.

In tegenstelling tot Memcached biedt Redis permanente opslag van gegevens op schijf en garandeert de veiligheid van de database in geval van een noodstop. De broncode van het project wordt gedistribueerd onder de BSD-licentie. Clientbibliotheken zijn beschikbaar voor de meeste populaire talen, waaronder Perl, Python, PHP, Java, Ruby en Tcl. Redis ondersteunt transacties, waarmee u een groep opdrachten in één stap kunt uitvoeren, waardoor consistentie en consistentie wordt gegarandeerd (opdrachten van andere verzoeken kunnen niet interfereren) bij de uitvoering van een bepaalde reeks opdrachten, en u in geval van problemen kunt terugdraaien veranderingen. Alle gegevens worden volledig in het RAM-geheugen opgeslagen.

Voor gegevensbeheer zijn opdrachten beschikbaar zoals verhogen/verlagen, standaardlijst- en setbewerkingen (samenvoeging, snijpunt), het hernoemen van sleutels, meervoudige selecties en sorteerfuncties. Er worden twee opslagmodi ondersteund: periodieke synchronisatie van gegevens naar schijf en onderhoud van een wijzigingsaanmelding op schijf. In het tweede geval is de volledige veiligheid van alle wijzigingen gegarandeerd. Het is mogelijk om master-slave-gegevensreplicatie naar meerdere servers te organiseren, uitgevoerd in een niet-blokkerende modus. Er is ook een berichtenmodus “publiceren/abonneren” beschikbaar, waarin een kanaal wordt gecreëerd, van waaruit berichten via een abonnement naar klanten worden gedistribueerd.

Toets verbeteringentoegevoegd in Redis 6.0:

  • Standaard wordt het nieuwe RESP3-protocol voorgesteld, maar het opzetten van de verbinding begint in de RESP2-modus en de client schakelt alleen over naar het nieuwe protocol als het nieuwe HELLO-commando wordt gebruikt bij het onderhandelen over de verbinding. Met RESP3 kunt u direct complexe gegevenstypen retourneren zonder dat u generieke arrays aan de clientzijde hoeft te converteren en door de retourtypen te scheiden.
  • Ondersteuning voor toegangscontrolelijst (ACL), zodat u nauwkeurig kunt bepalen welke bewerkingen door de klant kunnen worden uitgevoerd en welke niet. ACL's maken het ook mogelijk om te beschermen tegen mogelijke fouten tijdens de ontwikkeling. Een handler die alleen de BRPOPLPUSH-bewerking uitvoert, kan bijvoorbeeld worden verboden andere bewerkingen uit te voeren, en als de FLUSHALL-aanroep die tijdens het debuggen is toegevoegd, per ongeluk wordt vergeten in de productiecode, zal dit niet tot problemen leiden. Het implementeren van een ACL brengt geen extra overhead met zich mee en heeft vrijwel geen invloed op de prestaties. Ook zijn er interfacemodules voorbereid voor ACL, waardoor het mogelijk is om uw eigen authenticatiemethoden te creëren. Om alle geregistreerde ACL-schendingen te bekijken, is de opdracht “ACL LOG” beschikbaar. Om onvoorspelbare sessiesleutels te genereren, is de opdracht "ACL GENPASS" toegevoegd met behulp van op SHA256 gebaseerde HMAC.
  • Ondersteunen SSL / TLS om het communicatiekanaal tussen de client en de server te coderen.
  • Ondersteunen het cachen van gegevens aan de clientzijde. Om de cache aan de clientzijde in overeenstemming te brengen met de status van de database, zijn er twee modi beschikbaar: 1. Het onthouden op de server van de sleutels die de client eerder heeft aangevraagd om hem te informeren over het verlies van relevantie van de vermelding in de clientcache. 2. Het ‘broadcasting’-mechanisme, waarbij de client zich abonneert op bepaalde sleutelvoorvoegsels en de server hem op de hoogte stelt als de sleutels die onder deze voorvoegsels vallen, veranderen. Het voordeel van de "broadcasting" -modus is dat de server geen extra geheugen verspilt aan het opslaan van een kaart met waarden die aan de clientzijde in de cache zijn opgeslagen, maar het nadeel is dat het aantal verzonden berichten toeneemt.
  • De Disque-berichtenmakelaar, waarmee u Redis kunt gebruiken om berichtenwachtrijen te verwerken, is uit de basisstructuur verwijderd aparte module.
  • toegevoegd Clusterproxy, een proxy voor een cluster van Redis-servers, waardoor een client het werk met meerdere Redis-servers kan organiseren alsof het één exemplaar is. De proxy kan verzoeken routeren naar knooppunten met de benodigde gegevens, verbindingen multiplexen, het cluster opnieuw configureren als er knooppuntfouten worden gedetecteerd, en verzoeken uitvoeren die meerdere knooppunten bestrijken.
  • De API voor het schrijven van modules is aanzienlijk verbeterd, waardoor Redis feitelijk een raamwerk is geworden waarmee u systemen kunt maken in de vorm van add-on-modules.
  • Er is een replicatiemodus geïmplementeerd waarin RDB-bestanden onmiddellijk worden verwijderd nadat ze zijn gebruikt.
  • Het PSYNC2-replicatieprotocol is verbeterd, waardoor het mogelijk is om vaker gedeeltelijke hersynchronisatie uit te voeren, door de kans te vergroten op het identificeren van offsets die gemeenschappelijk zijn voor de replica en de master.
  • Het laden van RDB-bestanden is versneld. Afhankelijk van de bestandsinhoud varieert de versnelling van 20 tot 30%. De uitvoering van het INFO-commando is aanzienlijk versneld als er een groot aantal verbonden clients is.
  • Er is een nieuw STRALGO-commando toegevoegd met de implementatie van complexe stringverwerkingsalgoritmen. Momenteel is er slechts één LCS-algoritme (longest common subsequence) beschikbaar, wat nuttig kan zijn bij het vergelijken van RNA- en DNA-sequenties.

Bron: opennet.ru

Voeg een reactie