10
votes

Y a-t-il de toute façon pour récupérer toutes les clés qui commencent par une chaîne particulière dans Redis?

est là quand même récupérer toutes les clés qui commencent par une chaîne particulière dans Redis?

Je veux faire quelque chose comme le stockage: xxx

et récupérez tous les Thing1 sans avoir à connaître chaque utilisateur.


0 commentaires

5 Réponses :


13
votes
REDIS.hset("thing1", "user1", "")
REDIS.hset("thing1", "user2", "")
REDIDS.hgetall("thing1")

1 commentaires

Hey, oui j'utilise une carte en ce moment mais je pense que cela serait utile à un niveau inférieur depuis que je ne fais que hingeler une fois dans un moment. Il suffit de veiller à ce que je puisse toujours obtenir toutes les clés si nécessaire. Merci!



0
votes

Jetez un coup d'oeil à https://github.com/defunkt/redis-namespace < / p>


0 commentaires

0
votes

Il y a un Commande dans Redis qui recherchez tous vos noms de clé pour un modèle spécifié. Vous devez toutefois faire attention lorsque vous utilisez cette commande car elle a une complexité de temps O (n), de sorte que les performances dépendent de la quantité de clés de votre base de données. Il est plutôt destiné au débogage et ne convient pas aux environnements de production.


0 commentaires

1
votes

Vous pouvez également garder une trace des identifiants dans une liste, puis récupérer les valeurs de toutes les touches (ou hachage) à l'aide de la tri http://redis.io/commands/sort .

C'est un peu plus compliqué que "clés", mais cela peut faire plus de plus (:

J'ai lu quelque part que Hgetall peut vous donner des problèmes si vous avez trop de champs dans un hachage, je ne trouve malheureusement pas le guichet automatique de référence.


0 commentaires

0
votes

Vous pouvez utiliser Commande de numérisation à itérer sur toutes les touches qui correspondent à la motif donné:

> SCAN 0 MATCH thing1:*
1) "172032"
2) 1) "thing1:userid1"
   2) "thing1:userid2"
> SCAN 172032 MATCH thing1:*
1) "0"
2) 1) "thing1:userid3"


0 commentaires