J'ai une clé de liste redis simple => "id_fournisseur"
Maintenant, tout ce que je veux, c'est récupérer toutes les valeurs de la liste sans réellement réitérer ou extraire la valeur de la liste
Exemple pour récupérer toute la valeur d'une liste Maintenant, j'ai itéré sur la longueur de redis
element = []
0.upto(redis.llen("supplier_id")-1) do |index|
element << redis.lindex("supplier_id",index)
end
cela peut-il être fait sans l'itération perhap avec une meilleure modélisation de redis. quelqu'un peut-il suggérer
Pour récupérer tous les éléments d'une liste avec Redis, vous n'avez pas besoin d'itérer et de récupérer chaque élément individuellement. Ce serait vraiment inefficace.
Il vous suffit d'utiliser la commande LRANGE pour récupérer tous les éléments en une seule fois.
elements = redis.lrange( "supplier_id", 0, -1 )
renverra tous les éléments de la liste sans modifier la liste elle-même.
Je suis un peu flou sur votre question mais si le supplier_id est numérique, pourquoi ne pas utiliser un ZSET
?
Ajoutez vos valeurs comme ceci:
ZADD suppliers 1 "data for supplier 1"
ZADD suppliers 2 "data for supplier 2"
ZADD suppliers 3 "data for supplier 3"
Vous pouvez alors tout supprimer jusqu'à (mais sans inclure le fournisseur trois) comme ceci:
ZREMRANGEBYSCORE suppliers -inf 2
ou
ZREMRANGEBYSCORE suppliers -inf (3
Cela vous donne également un accès très rapide (par l'ID du fournisseur) si vous voulez simplement en lire.
J'espère que ça t'as aidé!