Verrouillage distribué redis

Verrouillage distribué redis

Dans Redis, le partitionnement fait référence à la division des données en plusieurs instances. Cela signifie que chaque redis détient une section de l'ensemble de votre ensemble de données. C'est une fonctionnalité pratique, surtout lorsqu'il s'agit de grands ensembles de données.

Examinons les différents types de partitionnement dans Redis et le coût et les avantages de chacun.

Types de partitionnement redis

Il y a deux mécanismes de partitionnement dans Redis:

  1. Partionnement de gamme
  2. Partitionnement de hachage

Rang partitionnement

La meilleure façon d'expliquer le partitionnement est d'utiliser une analogie. Supposons que vous avez quatre instances Redis: R0, R1, R2 et R3. Supposons également que vous devez stocker des clés sous le format de l'utilisateur: [ID].

Vous pouvez utiliser le partitionnement de la plage pour diviser les données en instances Redis disponibles.

Dans le partitionnement de la gamme, vous mappez une section de vos données dans une instance spécifique. Par exemple, vous pouvez prendre les clés de l'utilisateur: [id - id] et le mapper à l'instance R0. L'instance R1 peut maintenir le sous-ensemble des clés de l'utilisateur [id - id] et ainsi de suite.

C'est la forme de partitionnement la plus simple et la plus applicable dans Redis. Cependant, cela fournit une limitation.

Le partitionnement de plage nécessite un tableau qui mappe une plage spécifique à son cluster correspondant.

La table de cartographie doit être gérée et appliquée pour chaque type de données partitionné.

Partitionnement de hachage

La deuxième alternative au partitionnement de la gamme est le partitionnement de hachage. Redis utilise une fonction de hachage pour convertir une clé en un nombre dans cette méthode de partitionnement.

Par exemple, si nous avons un «fait» clé, nous pouvons le convertir en un nombre en utilisant une fonction de hachage telle que CRC-16.

Cela devrait renvoyer le numéro comme 8167.

Redis applique alors une opération de modulo au nombre et renvoie le résultat de 0 à 3.

Par exemple:

8167% 2

L'opération ci-dessus doit retourner 1. Redis utilise ensuite cette valeur pour déterminer dans quelle cluster la touche doit être stockée. Dans notre exemple, le «fait» clé est stocké dans l'instance R1.

NOTE: Ce n'est pas ainsi que l'opération de hachage est effectuée dans Redis. Ce qui précède n'est qu'une analogie.

Avantages du partitionnement.

  1. Le partitionnement permet à plusieurs instances de partager la mémoire et de stocker des données.
  2. Autoriser la mise à l'échelle de la puissance de calcul.

Inconvénients du partitionnement

  1. L'opération multi-touches n'est pas prise en charge.
  2. Vous ne pouvez pas effectuer une transaction Redis en utilisant plusieurs clés.
  3. Introduit l'ambiguïté lorsqu'il s'agit de la persistance.
  4. Les données de rétrécissement ou de croissance s'avèrent difficiles.

Conclusion

Dans ce guide, vous avez découvert les différents mécanismes de partitionnement redis. Vérifiez la documentation pour en savoir plus.