In Redis, we use KEYS
to retrieve specific keys we've defined in our database. For example, if we'd created a Redis key like this:
set someKeyName someValue
Then we could get that value by using KEYS
like this:
KEYS someKeyName
Interestingly, Redis KEYS
support glob style patterns - so we can match many keys using text familiar to you if you've ever worked with regex. Here are some examples:
-
someK?y
- the question mark represents any one character - sosomeKqy
,someKay
,someKyy
, etc, are all valid. -
someK*y
- the asterisk represents any character including spaces - sosomeKy
is valid -
someK[a-d]y
- to matchsomeKay
,someKby
,someKcy
orsomeKdy
. -
someK[ea]y
, - to matchsomeKey
orsomeKay
-
someK[^10]y
- where[^10]
means any number before 10 not including 10. -
someK[^e]y
- where[^e]
means any letter before e, but not including e.
This glob style pattern support also lets us retrieve all keys at once. Since the asterisk () or wild card symbol is supported, **to retrieve all keys in redis at once*, you only have to run KEYS *
:
KEYS *
If you have a lot of keys, this may not be what you want to do - but for certain use cases, it can be quite useful to retrieve all keys in Redis at once.
Top comments (1)
From the official documentation:
Also,
KEYS
(just like any other command) is a blocking call as Redis is single-threaded. Executing this command on an instance that contains a lot of keys will block the incoming requests until the execution is done. (source)