2013-02-25 8 views
0

J'ai besoin de modéliser des données dans redis où les clés sont des chemins de fichier, et chaque chemin a N clés/valeurs avec lui.Comment modéliser des données basées sur un chemin

Je suis actuellement la modélisation des données à l'aide Hashes.

HSET /products/clothes/pants/501-jeans "title" "Levi 501 Jeans" 

Cela fonctionne bien, mais je veux être en mesure d'obtenir une liste de tous les « pantalons » hachages « enfants ». Je peux le faire via

KEYS /products/clothes/pants/* 

Cependant redis documentation États KEYS pattern ne devraient pas être utilisés dans la production.

Je pensais à la création d'un ensemble de tous les « chemins » associés à hash, mais im toujours pas comment/si je peux chercher sur ceux-ci.

Réflexion sur la meilleure façon de modéliser ce type de données?

+0

relativement nouvelle à Redis, mais je pense à l'aide d'un ensemble pour stocker toutes les clés « en dessous »/produits/vêtements/pantalons est un bon. Vous ne savez pas quels sont vos critères de recherche, mais vous pourrez facilement obtenir une liste de toutes ces clés de hachage. – Adam

Répondre

0

Voici comment j'ai modélisé les données et il semble fonctionner assez bien.

resources::/path/foo => Redis Hash of Resource data 
resources::/path/foo/bar => Redis Hash of Resource data 
resources::/path/foo/cat => Redis Hash of Resource data 
resources::/path/foo/cat/dog => Redis Hash of Resource data 

children::/path/foo => Redis Map [ /path/foo/bar, /path/foo/cat/, /path/foo/dog ] 
children::/path/foo/bar => Redis Map [ /path/foo/bar, /path/foo/cat ] 
children::/path/foo/bar/cat => Redis Map [ /path/foo/dog ] 

Je dois gérer les enfants :: Cartes tout moment ajouter/supprimer un :: ressources clés

J'ai choisi la modélisation enfants :: utilisant Redis cartes de sorte que son impossible d'avoir les clés de chemin en double, mais en utilisant une liste peut fonctionner aussi bien (facile à

Questions connexes