REDIS - d'Obtenir une valeur de plusieurs touches
Comment puis-je obtenir la valeur de plusieurs touches de redis à l'aide d'un ensemble trié?
zadd Users 0 David
zadd Users 5 John
zadd Users 15 Linda
zrevrange Users 0 -1 withscores
Cela aura deux utilisateurs en elle.
Comment puis-je récupérer les utilisateurs avec la touche "David" et "Linda" dans une requête?
Vous devez vous connecter pour publier un commentaire.
Il y a plusieurs façons de le faire sans introduire une nouvelle commande dans le Redis.
Par exemple, vous pouvez remplir un ensemble temporaire avec les noms qui vous intéressent, puis de calculer l'intersection entre l'ensemble temporaire et le zset:
Avec le pipelining, cela ne fera que générer un aller-retour et vous pouvez remplir un nombre arbitraire de paramètres d'entrée dans tmp.
Avec Redis 2.6, vous pouvez également placer ces lignes dans un serveur de script Lua pour obtenir enfin une commande d'accepter une entrée de la liste et renvoie le résultat que vous souhaitez:
Vous pouvez supposer aucune nouvelle commande sera ajouté à Redis si il peut facilement été mis en œuvre à l'aide de scripts.
eval "redis.call( 'sadd', 'tmp', unpack(KEYS) );
, appuyez sur ENTRÉE, puis a eu une erreur (les arguments non valides); ai-je besoin d'un caractère spécial ou quelque chose à la fin pour saisir le reste du script?Vous pouvez utiliser Redis MGET
Plus ici
http://redis.io/commands/mget
On utilise un ensemble trié parce que vous voulez traiter avec des articles qui sont triés. Ce que vous demandez est de ne pas utiliser un ensemble trié comme un ensemble trié. Si vous ne se soucient pas de l'ordre de tri, puis peut-être un ensemble trié n'est pas ce que vous cherchez. Vous pouvez déjà récupérer plusieurs touches, mais pas arbitraire, ceux.
Si votre objectif principal est de récupérer plusieurs clés arbitraires, d'utiliser un hachage et hmget. Si votre besoin principal est d'accéder à un ensemble trié, utilisez l'ensemble trié et soit aller le script route ou d'un pipeline d'une série de zscore appels.
Vous ne pouvez pas l'obtenir avec une seule commande. Le plus proche que vous pouvez faire pour l'obtenir en une seule réponse:
MODIFIER: Alternativement, vous pouvez maintenir un parallèle de hachage avec les scores, et les interroger avec