48 votes

Vérifier si une valeur existe déjà dans une liste Redis

Je me demande s'il existe un moyen de vérifier si une clé existe déjà dans une liste redis?

Je ne peux pas utiliser un ensemble car je ne veux pas imposer l'unicité, mais je veux pouvoir vérifier si la chaîne est réellement là.

13voto

yinhaomin Points 183

Je suis surpris que personne n'ait mentionné l' ensemble , ce qui a parfaitement résolu la question. En utilisant la valeur de la clé sismember dans set , il vérifie si la valeur est un membre de la clé. Voici l'exemple :

 redis 127.0.0.1:6379> SADD myset1 "hello"
(integer) 1
redis 127.0.0.1:6379> SISMEMBER myset1 "hello"
(integer) 1
redis 127.0.0.1:6379> SISMEMBER myset1 "world"
(integer) 0

5voto

Linus G Thiel Points 18378

Non, il n'y a aucun moyen de vérifier si une liste redis contient une valeur donnée. Voir les commandes de la liste Redis pour référence.

Je suppose que vous pouvez utiliser LREM pour (essayer de) supprimer la valeur et vérifier la valeur de retour pour voir si elle a été supprimée. Mais alors vous devrez le remettre en place, et cela semble incertain. Il existe probablement une meilleure solution à votre problème - qu'essayez-vous d'accomplir ?

2voto

Ravexina Points 466

Vous pouvez également utiliser LPOS .

Lorsque l'élément existe, il renvoie un nombre indiquant la position :

 LPOS mylist myitem
3

Sinon, il renvoie nill :

 LPOS mylist myitem_which_do_not_exits
(nil)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X