0

I have keys stored in my Redis as given below.

  • project:page_1_user_1
  • project:page_1_user_2
  • project:page_1_user_3
  • project:page_2_user_1
  • project:page_2_user_2
  • project:page_3_user_1

To delete the keys matching the pattern, I use the below command as mentioned in many of the answers here on Stackoverflow.

redis-cli --scan --pattern '*page_1_*' | xargs -L 100 redis-cli unlink

Now, I want to delete multiple patterns in one single query. In the above query, I delete pattern having page_1 , so I want to delete mulitple patterns like page_2 and page_3 all in one single query to the redis-cli. For now I have been looping through my patterns and calling the above redis-cli query. Is it possible to have something like below ?

redis-cli --scan --pattern '*page_1_*,*page_2_*,*page_3_*' | xargs -L 100 redis-cli unlink
Alok Agarwal
  • 1
  • 1
  • 3

1 Answers1

2

Redis supports glob style patterns, so you could use

redis-cli --scan --pattern '*page_[123]_*'

or

redis-cli --scan --pattern '*page_[1-3]_*'

(You've probably found the answer yourself in the meantime…)

Joe
  • 877
  • 1
  • 11
  • 26