Redis réplication et redis sharding (cluster) de différence
- Ce que quelqu'un sait la différence entre le redis réplication et redis la fragmentation?
- Quels sont-ils utiliser pour? Redis stocke les données en mémoire, comment cela affecte la réplication/fragmentation?
- Est-il possible d'utiliser les deux ensemble?
Merci!
Vous devez vous connecter pour publier un commentaire.
Sharding est presque de la réplication de l'antithèse, mais ils sont orthogonaux concepts et de bien travailler ensemble.
Sharding, aussi connu comme le partitionnement, est diviser les données par clé; Tandis que la réplication, nous savons également que la mise en miroir est de copier toutes les données.
Sharding est utile pour augmenter les performances, la réduction de la frapper et de la mémoire de la charge sur une ressource. La réplication est utile pour une haute disponibilité du lit. Si vous lisez à partir de plusieurs répliques, vous permettra également de réduire le taux de succès sur toutes les ressources, mais le besoin de mémoire pour toutes les ressources reste le même. Il convient de noter que, tandis que vous pouvez écrire à un esclave, la réplication maître->esclave uniquement. Vous ne pouvez donc pas à l'échelle écrit de cette façon.
Supposons que vous avez les tuples suivants: [1:Apple], [2:la Banane], [3:Cerise], [4:le Durian] et nous avons deux machines A et B. Avec la Fragmentation, on peut stocker des clés de 2,4 sur Une machine; et des touches de 1,3 sur la machine B. Avec la Réplication, nous stockons les touches 1,2,3,4 sur la machine A et 1,2,3,4 sur une machine B.
Sharding est généralement mis en œuvre par l'exécution d'un uniforme de hachage de la clé. L'exemple ci-dessus a été mis en œuvre avec les suivants en fonction de hachage h(x){return x%2==0?A:B}.
De combiner les concepts, On pourrait répliquer à chaque fragment. Dans le cas ci-dessus, toutes les données (2,4) de l'ordinateur A pu être reproduits sur la machine C et toutes les données (1,3) de la machine B pourrait être reproduit sur la machine D.
Tout key-value store (dont Redis n'est qu'un exemple) prend en charge la fragmentation, bien que certains de la croix-clé de fonctions ne fonctionneront plus. Redis prend en charge la réplication hors de la boîte.
En termes simples, la différence fondamentale entre les deux concepts est que la Fragmentation est utilisé à l'échelle de l'Écrit, tandis que la Réplication est utilisé à l'échelle de Lit. Comme Alex a déjà mentionné, la Réplication est également l'une des solutions pour atteindre HA.
Oui, ils sont généralement utilisés ensemble, si vous considérez la façon dont les éclats peuvent être répliquées à travers les nœuds dans un cluster.
Quant à votre troisième question, au lieu de la RAM chasse d'option, c'est une meilleure idée d'utiliser le Redis Ajouter qu'un Seul Fichier (AOF). À un moindre coût (en termes de vitesse d'écriture), vous obtenez beaucoup plus de la fiabilité de vos écritures. Il est tout à fait comme les mysql log binaire. Le 1 fsync/seconde option est recommandée pour l'utilisation.