Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Contagem de varredura do Redis:como forçar o SCAN a retornar todas as chaves que correspondem a um padrão?


Com o código abaixo você irá escanear o primeiro objeto 1000 do cursor 0
SCAN 0 MATCH "foo:bar:*" COUNT 1000 

Como resultado, você receberá um novo cursor para recuperar
SCAN YOUR_NEW_CURSOR MATCH "foo:bar:*" COUNT 1000

Para digitalizar 1000 próximo objeto. Então, quando você aumenta COUNT de 1000 a 10000 e recuperar dados, você digitaliza mais chaves do que, no seu caso, corresponde a mais chaves.

Para escanear a lista inteira, você precisa chamar SCAN até que o cursor dê em resposta, retorne zero (ou seja, varredura inteira)

Use INFO comando para obter sua quantidade de chaves como

db0:keys=YOUR_AMOUNT_OF_KEYS,expires=0,avg_ttl=0

Então ligue
SCAN 0 MATCH "foo:bar:*" COUNT YOUR_AMOUNT_OF_KEYS