Question

  1. Quelqu'un sait la différence entre réplication et Redis Redis sharding?
  2. Que sont-ils utiliser pour? Redis stocke les données en mémoire, comment cela affecte-t réplication / sharding?
  3. Est-il possible d'utiliser les deux ensemble?

Merci!

Était-ce utile?

La solution

Sharding est presque l'antithèse de la réplication, mais ils sont des concepts orthogonaux et fonctionnent bien ensemble.

Sharding, également connu sous le cloisonnement, est le fractionnement des données par clé; Alors que la réplication, également connu sous le miroir, est de copier toutes les données.

Sharding est utile pour augmenter les performances, ce qui réduit la charge de succès et de la mémoire sur une seule ressource. La réplication est utile pour la haute disponibilité de lectures. Si vous lisez à partir de plusieurs répliques, vous réduirez également le taux de succès sur toutes les ressources, mais l'exigence de mémoire pour toutes les ressources reste le même. Il convient de noter que, alors que vous pouvez écrire à un esclave, la réplication est master-> esclave seulement. vous ne pouvez donc pas l'échelle écrit de cette façon.

Supposons que vous avez les tuples suivants: [1: Apple], [2: Banana], [3: Cherry], [4: Durian] et nous avons deux machines A et B. Avec Sharding, nous pourrions stocker des clés 2 , 4 sur la machine A; et les clés 1,3 sur la machine B. Avec la réplication, nous stockons les touches 1,2,3,4 sur la machine A et B 1,2,3,4 sur la machine.

Sharding est généralement mis en œuvre en effectuant un hachage cohérente sur la clé. L'exemple ci-dessus a été mis en œuvre avec la fonction de hachage suivante h (x) {return x% 2 == 0 A: B}.

Pour combiner les concepts, nous pourrions reproduire chaque tesson. Dans les cas ci-dessus, l'ensemble des données (2,4) de la machine A pourraient être reproduits sur la machine C et l'ensemble des données (1,3) de la machine B pourraient être reproduits sur la machine D.

Tout magasin clé-valeur (dont Redis est seulement un exemple) soutient sharding, bien que certaines fonctions transversales clés ne fonctionneront plus. Redis supporte la réplication de la boîte.

Autres conseils

En termes simples, la différence fondamentale entre les deux concepts est que Sharding est utilisé à l'échelle Rédige pendant la réplication est utilisée à l'échelle Reads. Comme Alex a déjà été mentionné, la réplication est également l'une des solutions pour atteindre HA.

Oui, ils sont tous deux généralement utilisés ensemble si l'on considère la façon dont des tessons peuvent être répliquées sur plusieurs nœuds d'un cluster.

En ce qui concerne votre troisième question, au lieu de l'option RAM-chasse d'eau, il est une meilleure idée d'utiliser le Redis Append seul dossier (AOF). A seulement un coût mineur (en termes de vitesse d'écriture), vous obtenez beaucoup plus de fiabilité de vos écritures. Il est tout à fait comme le log binaire. Le 1 fsync / seconde est l'option recommandée à utiliser.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top