Sortie du SGBD Redis 6.0

Préparé Version du SGBD Rédis 6.0, appartenant à la classe des systèmes NoSQL. Redis fournit des fonctions de type Memcached pour stocker les données clé/valeur, améliorées par la prise en charge de formats de données structurés tels que des listes, des hachages et des ensembles, et par la possibilité d'exécuter des scripts de gestionnaire Lua côté serveur. Code de projet fourni sous licence BSD. Modules supplémentaires offrant des fonctionnalités avancées pour les utilisateurs d'entreprise tels que RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom depuis l'année dernière fourni sous la licence propriétaire RSAL. Le développement de versions ouvertes de ces modules sous licence AGPLv3 est poursuivi par le projet Bonne forme.

Contrairement à Memcached, Redis assure un stockage persistant des données sur disque et garantit la sécurité de la base de données en cas d'arrêt d'urgence. Le code source du projet est distribué sous licence BSD. Les bibliothèques clientes sont disponibles pour les langages les plus populaires, notamment Perl, Python, PHP, Java, Ruby et Tcl. Redis prend en charge les transactions, qui vous permettent d'exécuter un groupe de commandes en une seule étape, garantissant la cohérence et la cohérence (les commandes d'autres requêtes ne peuvent pas interférer) dans l'exécution d'un ensemble de commandes donné, et en cas de problème, vous permettant de revenir en arrière changements. Toutes les données sont entièrement mises en cache dans la RAM.

Des commandes telles que l'incrémentation/décrémentation, les opérations de liste et d'ensemble standard (union, intersection), le renommage des touches, les sélections multiples et les fonctions de tri sont fournies pour la gestion des données. Deux modes de stockage sont pris en charge : la synchronisation périodique des données sur le disque et la maintenance d'un journal des modifications sur le disque. Dans le second cas, la sécurité totale de tous les changements est garantie. Il est possible d'organiser la réplication des données maître-esclave vers plusieurs serveurs, réalisée en mode non bloquant. Un mode de messagerie « publier/s'abonner » est également disponible, dans lequel un canal est créé, à partir duquel les messages sont distribués aux clients par abonnement.

Clé améliorationsajouté dans Redis 6.0 :

  • Par défaut, le nouveau protocole RESP3 est proposé, mais l'établissement de la connexion démarre en mode RESP2 et le client passe au nouveau protocole uniquement si la nouvelle commande HELLO est utilisée lors de la négociation de la connexion. RESP3 permet de renvoyer directement des types de données complexes sans avoir besoin de convertir des tableaux génériques côté client et en séparant les types de retour.
  • Prise en charge de la liste de contrôle d'accès (ACL), vous permettant de déterminer avec précision quelles opérations peuvent être effectuées par le client et lesquelles ne le peuvent pas. Les ACL permettent également de se protéger contre d'éventuelles erreurs lors du développement, par exemple, un gestionnaire qui effectue uniquement l'opération BRPOPLPUSH peut se voir interdire d'exécuter d'autres opérations, et si l'appel FLUSHALL ajouté lors du débogage est accidentellement oublié dans le code de production, cela ne pose pas de problèmes. La mise en œuvre d'une ACL n'entraîne aucune surcharge supplémentaire et n'a pratiquement aucun impact sur les performances. Des modules d'interface ont également été préparés pour ACL, permettant de créer vos propres méthodes d'authentification. Pour afficher toutes les violations ACL enregistrées, la commande « ACL LOG » est fournie. Pour générer des clés de session imprévisibles, la commande « ACL GENPASS » a été ajoutée à l'aide de HMAC basé sur SHA256.
  • support SSL / TLS pour chiffrer le canal de communication entre le client et le serveur.
  • support mise en cache des données côté client. Pour rapprocher le cache côté client avec l'état de la base de données, deux modes sont disponibles : 1. Mémoriser sur le serveur les clés que le client a précédemment demandées afin de l'informer de la perte de pertinence de l'entrée dans le cache client. 2. Le mécanisme de « diffusion », dans lequel le client s'abonne à certains préfixes de clé et le serveur le notifie si les clés qui relèvent de ces préfixes changent. L'avantage du mode « diffusion » est que le serveur ne gaspille pas de mémoire supplémentaire pour stocker une carte de valeurs mises en cache côté client, mais l'inconvénient est que le nombre de messages transmis augmente.
  • Le courtier de messages Disque, qui vous permet d'utiliser Redis pour traiter les files d'attente de messages, a été supprimé de la structure de base dans module séparé.
  • Добавлен Proxy de cluster, un proxy pour un cluster de serveurs Redis, permettant à un client d'organiser le travail avec plusieurs serveurs Redis comme s'il s'agissait d'une seule instance. Le proxy peut acheminer les requêtes vers les nœuds contenant les données nécessaires, multiplexer les connexions, reconfigurer le cluster si des pannes de nœuds sont détectées et exécuter des requêtes qui s'étendent sur plusieurs nœuds.
  • L'API d'écriture de modules a été considérablement améliorée, transformant essentiellement Redis en un framework qui vous permet de créer des systèmes sous forme de modules complémentaires.
  • Un mode de réplication a été implémenté dans lequel les fichiers RDB sont immédiatement supprimés après avoir été utilisés.
  • Le protocole de réplication PSYNC2 a été amélioré, ce qui a permis d'effectuer plus souvent des resynchronisations partielles, en augmentant les chances d'identifier des offsets communs à la réplique et au maître.
  • Le chargement des fichiers RDB a été accéléré. Selon le contenu du fichier, l'accélération varie de 20 à 30 %. L'exécution de la commande INFO a été considérablement accélérée lorsqu'il y a un grand nombre de clients connectés.
  • Une nouvelle commande STRALGO a été ajoutée avec la mise en œuvre d'algorithmes complexes de traitement de chaînes. Actuellement, un seul algorithme LCS (sous-séquence commune la plus longue) est disponible, ce qui peut être utile pour comparer des séquences d’ARN et d’ADN.

Source: opennet.ru

Ajouter un commentaire