VRANDMEMBER

Syntax
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.

RESP2 Reply

One of the following:

RESP3 Reply

One of the following:


RATE THIS PAGE
Back to top ↑