Existe uma maneira de imprimir o número de chaves no Redis?
Estou ciente
keys *
Mas isso parece um pouco pesado. - Como o Redis é um armazenamento de valores-chave, talvez essa seja a única maneira de fazê-lo. Mas eu ainda gostaria de ver algo ao longo das linhas de
count keys *
Respostas:
Você pode emitir o comando INFO, que retorna informações e estatísticas sobre o servidor. Veja aqui um exemplo de saída.
Como mencionado nos comentários do mVChr, você pode usar
info keyspace
diretamente no redis-cli.fonte
redis-cli INFO Keyspace | grep ^db
DBSIZE
retorna o número de chaves e é mais fácil analisar.Desvantagem: se uma chave expirou, ela ainda poderá contar.
http://redis.io/commands/dbsize
fonte
KEYS *
despeja a chave expirada. Além disso, os Redis podem despejar ativamente algumas chaves expiradas, mas não necessariamente todas.AVISO: Não execute isso em uma máquina de produção.
Em uma caixa Linux:
Nota: Conforme mencionado nos comentários abaixo, esta é uma operação O (N); portanto, em um banco de dados grande com muitas chaves, você não deve usá-lo. Para implantações menores, tudo bem.
fonte
Para obter o número total de chaves da contagem, use o comando abaixo:
fonte
use
DBSIZE
isso não lhe dará nenhuma chavepara ler mais http://redis.io/commands/dbsize
fonte
Como o Redis 2.6, lua é suportado, você pode obter um número de chaves curinga como este
ver comando eval
fonte
KEYS
para contar as teclas (com ou sem prefixo) é como jogar o bebê para fora com a água do banho.#
neste código é o operador de comprimento .dbsize()
retorna o número total de chaves.Você pode estimar rapidamente o número de chaves correspondentes a um determinado padrão, amostrando chaves aleatoriamente e depois verificando qual fração delas corresponde ao padrão.
Exemplo em python; contando todas as chaves começando com
prefix_
:Mesmo
iter=100
dá uma estimativa decente no meu caso, ainda é muito rápido, em comparação comkeys prefix_
.Uma melhoria é obter uma amostra de 1000 chaves em cada solicitação, mas mantenha a contagem total, para que, após duas solicitações, você divida até 2000, após três solicitações, divida por 3000. Portanto, se seu aplicativo estiver interessado no número total de chaves correspondentes com bastante frequência, sempre que ele se aproximar cada vez mais do valor real.
fonte
Após o Redis 2.6, o resultado do comando INFO é dividido por seções. Na seção "espaço de chaves", existem campos "chaves" e "chaves expiradas" para informar quantas chaves existem.
fonte
fonte