Clé d'accès 8208-haut débit & # avec nosql

Key # 8208-valeur dans les magasins NoSQL sont tous sur la vitesse. Vous pouvez utiliser différentes techniques pour maximiser cette vitesse, à partir de données de mise en cache, à avoir plusieurs copies de données, ou en utilisant des structures de stockage les plus appropriées.

Sommaire

Cache de données en mémoire

Comme les données sont facilement accessible quand il est stocké dans la mémoire vive (RAM), le choix d'un 8208-valeur magasin touche # qui met en cache les données dans la mémoire vive peut accélérer considérablement l'accès aux données, mais au prix de coûts de serveur plus élevés.

Souvent, cependant, ce compromis est la peine de faire. Vous pouvez facilement calculer quel pourcentage de vos données stockées est demandé fréquemment. Si vous connaissez cinq pour cent est généralement demandé toutes les quelques minutes, puis prendre cinq pour cent de la taille de votre de données et ajouter ce nombre comme espace de RAM libre entre vos serveurs de base de données.

Gardez à l'esprit que le système d'exploitation, d'autres applications, et le serveur de base de données ont des exigences de mémoire, aussi.

La réplication de données aux esclaves

En clés # 8208-valeur magasins, une touche particulière est stocké sur l'un des serveurs de la grappe. Ce processus est appelé partitionnement clé. Cela signifie que, si cette clé est constamment demandé, ce noeud recevra la majeure partie des demandes. Ce noeud, donc, sera plus lente que votre vitesse de demande moyenne, affectant potentiellement la qualité du service à vos utilisateurs.

Pour éviter cette situation, certains Key # 8208-valeur magasins en charge l'ajout lire # 8208-répliques seulement, également appelés comme des esclaves. Redis, Riak, et aerospike sont de bons exemples. Replication permet la clé pour être stocké plusieurs fois sur plusieurs serveurs, ce qui augmente la vitesse de réponse, mais au prix de plus de matériel.

Certains # 8208-valeur magasins clés garantir que les répliques de la clé aura toujours la même valeur que le maître. Cette garantie est appelée étant pleinement compatible. Si une mise à jour qui se passe sur le serveur maître en maintenant la touche, toutes les répliques sont garantis pour être à jour.




Tous Key # 8208-valeur magasins garantissent pas ce statut (Riak, par exemple), donc si il est important d'être à jour à la milliseconde, puis choisissez une base de données dont les répliques sont pleinement compatibles (tels que aerospike).

La modélisation des données dans les principaux # 8208-valeur magasins

Beaucoup de Key # 8208-valeur magasins ne supportent que les structures de base pour leurs types de valeur, laissant le programmeur d'application avec le travail de l'interprétation des données. Simple support de type de données comprend généralement chaînes, des entiers, JSON, et les valeurs binaires.

Pour de nombreux cas d'utilisation, cela fonctionne bien, mais parfois un peu plus l'accès granulaire aux données est utile. Redis, par exemple, prend en charge les types de valeurs de données suivantes:

  • Chaîne

  • Liste

  • Régler

  • Ensemble trié

  • Cartes Hash

  • Tableaux binaires

  • Journaux HyperLOG

Des jeux triés peuvent être interrogés pour des plages de valeurs correspondant - un peu comme l'interrogation d'un indice de valeurs triées par date, ce qui est très utile pour la recherche d'un sous-ensemble de données typées.

Fonctionnant sur des données

Redis comprend des opérations pour incrémenter et décrémenter les valeurs clés directement, sans avoir à faire une lecture # 8208 # 8208-modifier-mise à jour (RMU) ensemble d'étapes. Vous pouvez le faire dans une transaction unique afin d'assurer qu'aucune autre application modifie la valeur au cours d'une mise à jour. Ces données # opérations spécifiques de type 8208 comprennent l'ajout et la suppression d'éléments à des listes et des ensembles, aussi.

Vous pouvez même fournir des fonctionnalités autocomplete sur l'interface utilisateur d'une application en utilisant la commande Redis ZRANGEBYLEX. Cette commande récupère un ensemble de touches qui correspond partiellement une chaîne. Donc, si vous tapez “ NoSQL pour ” dans la barre de recherche d'une application construite sur Redis, vous verriez la suggestion “ NoSQL For Dummies ”.

Évaluer Redis

Redis se targue d'être un magasin très léger mais incroyablement rapide 8208-valeur de clé #. Il a été initialement conçu pour être un dans # 8208-mémoire de la clé # magasin 8208-valeur, mais dispose désormais de stockage de données basé sur le disque # 8208.

Vous pouvez utiliser Redis pour protéger les données en permettant AOF (append seul fichier) Mode et instruire Redis pour forcer données sur le disque sur chaque requête (connu comme forcé fsync rinçage). AOF fait ralentir les écritures, bien sûr, mais il fournit un niveau plus élevé de durabilité pour les données. Soyez conscient, cependant, qu'il est toujours possible de perdre jusqu'à une seconde de commandes.

Aussi, Redis que récemment ajouté le support pour le clustering. En fait, au moment d'écrire ces lignes, le soutien de clustering de Redis est en phase de test bêta. Heureusement, Redis utilise un modèle de cluster 8208 rien # partagé, avec des maîtres et des esclaves pour les touches particulières qui ne sont jamais directement gravés par un client-seulement le maître fait. Fournir # 8208 regroupement shared-nothing devrait rendre plus facile pour Redis pour mettre en œuvre le regroupement fiable que ce soit pour les bases de données qui permettent écrit à toutes les répliques.

Si vous voulez un très haut # 8208-vitesse, en couche de mise en cache # 8208-mémoire en face de l'autre base de données - MongoDB ou Riak sont couramment utilisés avec Redis - puis évaluer Redis comme une option. Comme support pour le clustering et des données de durabilité évolue, peut-être Redis peut dépasser les autres bases de données back-end # 8208.


» » » » Clé d'accès 8208-haut débit & # avec nosql