2014-07-21 2 views
0

J'ai enregistré une liste dans un hachage mais je n'arrive pas à comprendre comment récupérer le contenu du hachage. Tout d'abord, voici un code pour créer la liste:Affichage de la liste sauvegardée dans un hachage Redis

127.0.0.1:6379> LPUSH list1 'dc:39:79:ab:cd:ef' (integer) 1 127.0.0.1:6379> LPUSH list1 '2014-07-21' (integer) 2 127.0.0.1:6379> LPUSH list1 'Success' (integer) 3 127.0.0.1:6379> LPUSH list1 'Miscellaneous notes about the install. Can be as long as you want' (integer) 4

Maintenant, je crée un hachage et affecter la valeur d'une clé list1:

127.0.0.1:6379> hset hash 'RKT1234' list1 (integer) 1

Comment puis-je imprimer l'ensemble liste sauvegardée à l'intérieur du hash ['RKT1234']?

127.0.0.1:6379> hgetall hash 1) "RKT1234" 2) "list1"

127.0.0.1:6379> hvals hash 1) "list1"

grâce

Répondre

1

Il semble que vous essayez de stocker une liste en tant que valeur dans un hachage. Vous ne faites pas ce que vous pensez faire car Redis ne supporte pas les structures de données imbriquées. Dans hset hash 'RKT1234' list1 vous ne stockez pas la liste, juste un nom de chaîne: "list1".

Pour obtenir le contenu de la liste, vous devez d'abord obtenir le nom de la liste à partir du hachage, puis obtenir le contenu de la liste lors d'un second appel.

Ainsi, votre séquence ressemble à ceci:

# returns "list1" 
hvals hash 
lrange list1 0 -1 
# returns the contents of list1 

Vive

+0

Bonjour, Bill réel – linuxfan

+0

Merci pour la réponse et des éclaircissements concernant Redis' capacité (en) de travailler avec des structures de données imbriquées. Je ne vois pas comment l'extrait de code que vous avez publié peut vous aider. Pouvons-nous sauvegarder le nom retourné par ** hvals hash ** dans une variable et appeler plus tard ** lrange ** dessus? Évidemment, je ne veux pas coder en dur le nom de la liste sur laquelle ** lrange ** sera appelé. merci – linuxfan

+0

Oui, c'est exactement ce que vous feriez. Comme vous n'avez pas posté la langue que vous utilisez, je n'avais aucun moyen de le savoir et de le démontrer de cette façon, donc je suis resté avec les commandes redis-cli comme vous les avez utilisées. :) –

Questions connexes