Redis scan count: How to force SCAN to return all keys matching a pattern?
redis
Solution
With the code below you will scan the 1000 first object from cursor 0
SCAN 0 MATCH "foo:bar:*" COUNT 1000
In result, you will get a new cursor to recall
SCAN YOUR_NEW_CURSOR MATCH "foo:bar:*" COUNT 1000
To scan 1000 next object. Then when you increase `COUNT` from 1000 to 10000 and retrieve data you scan more keys then in your case match more keys.
To scan the entire list you need to recall `SCAN` until the cursor give in response return zero (i.e entire scan)
Use `INFO` command to get your amount of keys like
db0:keys=YOUR_AMOUNT_OF_KEYS,expires=0,avg_ttl=0
Then call
SCAN 0 MATCH "foo:bar:*" COUNT YOUR_AMOUNT_OF_KEYS
Problem
I am trying to find out values stored in a list of keys which match a pattern from redis. I tried using `SCAN` so that later on i can use `MGET` to get all the values, The problem is: ``` SCAN 0 MATCH "foo:bar:*" COUNT 1000 ``` does not return any value whereas ``` SCAN 0 MATCH "foo:bar:*" COUNT 10000 ``` returns the desired keys. How do i force `SCAN` to look through all the existing keys? Do I have to look into lua for this?