VRANDMEMBER
VRANDMEMBER key [count]
- Available since:
- Redis CE 8.0.0
- Time complexity:
- O(N) where N is the absolute value of the count argument.
Return one or more random elements from a vector set.
The behavior is similar to the SRANDMEMBER
command:
- When called without a count, returns a single element as a bulk string.
- When called with a positive count, returns up to that many distinct elements (no duplicates).
- When called with a negative count, returns that many elements, possibly with duplicates.
- If the count exceeds the number of elements, the entire set is returned.
- If the key does not exist, the command returns
null
if no count is given, or an empty array if a count is provided.
VADD vset VALUES 3 1 0 0 elem1
VADD vset VALUES 3 0 1 0 elem2
VADD vset VALUES 3 0 0 1 elem3
Return a single random element:
VRANDMEMBER vset
"elem2"
Return two distinct random elements:
VRANDMEMBER vset 2
1) "elem1"
2) "elem3"
Return 3 random elements with possible duplicates:
VRANDMEMBER vset -3
1) "elem2"
2) "elem2"
3) "elem1"
Request more elements than exist in the set:
VRANDMEMBER vset 10
1) "elem1"
2) "elem2"
3) "elem3"
When the key doesn't exist:
VRANDMEMBER nonexistent
(nil)
VRANDMEMBER nonexistent 3
(empty array)
This command is useful for:
- Sampling elements for testing or training.
- Generating random queries for performance testing.
Internally:
- For small counts (less than 20% of the set size), a dictionary is used to ensure uniqueness.
- For large counts (more than 20% of the set size), a linear scan provides faster performance, though results may be less random.
Required arguments
key
is the name of the key that holds the vector set.
Optional arguments
count
specifies the number of elements to return. Positive values return distinct elements; negative values allow duplicates.
Related topics
RESP2 Reply
One of the following:
- Array reply containing the names of count random elements as strings.
- Bulk string reply (null bulk string) for unknown keys.
- Array reply (empty array) for unknown keys when a count is specified.
RESP3 Reply
One of the following:
- Array reply containing the names of count random elements as strings.
- Null reply for unknown keys.
- Array reply (empty array) for unknown keys when a count is specified.