Skip to content

Instantly share code, notes, and snippets.

@mattweyant
Created June 4, 2012 19:05
Show Gist options
  • Save mattweyant/2870203 to your computer and use it in GitHub Desktop.
Save mattweyant/2870203 to your computer and use it in GitHub Desktop.
Delete all keys from Redis matching a regular expression
# All credit: http://stackoverflow.com/questions/4006324/how-to-atomically-delete-keys-matching-a-pattern-with-redis
redis-cli [options] KEYS "prefix:*" | xargs redis-cli [options] DEL
@carltondickson
Copy link

Thanks @ali
These commands are ridiculously slow when you have millions of keys

@prempopatia
Copy link

@peterpoliwoda you can do the following:

redis-cli -h <HOST> -p <PORT> -a <PASSWORD> --scan --pattern "patter*n" | xargs redis-cli -h <HOST> -p <PORT> -a <PASSWORD> unlink

Using unlink is better then using del as stated in: https://redis.io/commands/unlink

Thanks, it did work.

@mdutkin
Copy link

mdutkin commented Jan 20, 2022

If your keys have any escape characters you need to change the xargs delimiter:

redis-cli --scan --pattern "horizon:failed:*" | xargs -n 1 -d '\n' redis-cli DEL

that's my case, it worked - thanks a lot @jessecurry

@anjanesh
Copy link

How do I achieve the same using the redis pypi package ? Right now I'm using r.delete(*r.keys("someKey_*"))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment