I\'m wondering if there\'s a way to check if a key already exists in a redis list?
I can\'t use a set because I don\'t want to enforce uniqueness, but I do want to be ab
Lists allow duplicates but do not provide a simple way to check for existence and as @Fritzy advised, you either need to:
I am surprised no one advised you to use either a Hash Table or a Sorted Set which combine advantages of allowing duplicity (by storing the number of elements as value - Hash Table, or score - Sorted Set) and indexing members by nature of a hash table/set.
To check for a key existence, use HEXISTS
for a specific field which returns 0
if the specified member does not exist.
You could also use the HGET
command. It returns a nil
answer if the specified member does not exist.
To add a new member, simply use HINCRBY
which will either update the value (ie the number of elements with the member name) or create a new member if it does not exist.
To check for a key existence, use either one of the three following commands:
ZSCORE
ZRANK
ZREVRANK
They return a nil
answer if the specified member does not exist.
To add a new member, simply use ZINCRBY
which will either update the score (ie the number of elements with the member name) or create a new member if it does not exist.
To sum up: Sorted Sets or Hash Tables allow you to make all the operations with your requirements with a single command.