Returns one or more random fields from a hash.
HRANDFIELD
key [count
[WITHVALUES
]]
When called with just the key
argument, return a random
field from the hash value stored at key
.
If the provided count
argument is positive, return an
array of distinct fields. The array’s length is either
count
or the hash’s number of fields (HLEN
),
whichever is lower.
If called with a negative count
, the behavior changes
and the command is allowed to return the same field multiple
times. In this case, the number of returned fields is the
absolute value of the specified count
.
The optional WITHVALUES
modifier changes the reply so it
includes the respective values of the randomly selected hash fields.
Any of the following:
Nil reply: if the key doesn’t exist
Bulk string
reply: a single, randomly selected field when the count
option is not used
Array reply: a list
containing count
fields when the count
option
is used, or an empty array if the key does not exists.
Array reply: a list
of fields and their values when count
and
WITHVALUES
were both used.
Any of the following:
Null reply: if the key doesn’t exist
Bulk string
reply: a single, randomly selected field when the count
option is not used
Array reply: a list
containing count
fields when the count
option
is used, or an empty array if the key does not exists.
Array reply: a list
of fields and their values when count
and
WITHVALUES
were both used.
O(N) where N is the number of fields returned
@hash @read @slow
127.0.0.1:6379> HSET coin heads obverse tails reverse edge null
(integer) 3
127.0.0.1:6379> HRANDFIELD coin
"heads"
127.0.0.1:6379> HRANDFIELD coin
"heads"
127.0.0.1:6379> HRANDFIELD coin -5 WITHVALUES
1) "heads"
2) "obverse"
3) "tails"
4) "reverse"
5) "edge"
6) "null"
7) "heads"
8) "obverse"
9) "edge"
10) "null"
When the count
argument is a positive value this command
behaves as follows:
count
is bigger than the number of fields in the
hash, the command will only return the whole hash without additional
fields.When the count
is a negative value, the behavior changes
as follows:
count
fields, or an empty array if the hash is
empty (non-existing key), are always returned.HDEL, HEXISTS, HGET, HGETALL, HINCRBY, HINCRBYFLOAT, HKEYS, HLEN, HMGET, HSCAN, HSET, HSETNX, HSTRLEN, HVALS.