skip to Main Content

I am using Redis hash set to store data in the following format:

hset b1.b2.b3 name test

Now I want to delete this key so I am using the following format:

del b1.b2.*

But it not working so how I delete the Redis key using a pattern?

2

Answers


  1. Redis does not provide any method to delete bulk keys. But redis-cli along with xargs can be used to achieve what you are trying to do. See the commands below:

    127.0.0.1:6379> hset b1.b2.b3 name test
    (integer) 1
    127.0.0.1:6379> hgetall b1.b2.b3
    1) "name"
    2) "test"
    $ redis-cli --scan --pattern b1.b2.* | xargs redis-cli del
    (integer) 1
    $ redis-cli
    127.0.0.1:6379> hgetall b1.b2.b3
    (empty list or set)
    

    We are scanning redis for a pattern using ‘–scan’ and the output is given to redis-cli again using the xargs method whcih combines all the keys in the scan result and finally we delete all of them using ‘del’ command.

    Login or Signup to reply.
  2. You can do it using the pattern above @Ankit answered.

    you can do a SCAN and then delete the keys until nothing left (cursor is 0)

    https://redis.io/commands/scan

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search