¿Hay alguna forma de imprimir el número de claves en Redis?
Estoy consciente de
keys *
Pero eso parece un poco pesado. - Dado que Redis es un almacén de valores clave, tal vez esta sea la única forma de hacerlo. Pero todavía me gustaría ver algo en la línea de
count keys *
Respuestas:
Puede emitir el comando INFO, que devuelve información y estadísticas sobre el servidor. Vea aquí para un ejemplo de salida.
Como se menciona en los comentarios de mVChr, puede usar
info keyspace
directamente en el redis-cli.fuente
redis-cli INFO Keyspace | grep ^db
DBSIZE
devuelve el número de claves y es más fácil de analizar.Desventaja: si una clave ha expirado, aún puede contar.
http://redis.io/commands/dbsize
fuente
KEYS *
desaloja la clave expirada. También Redis puede desalojar activamente algunas claves caducadas, pero no necesariamente todas.ADVERTENCIA: No ejecute esto en una máquina de producción.
En una caja de Linux:
Nota: Como se menciona en los comentarios a continuación, esta es una operación O (N), por lo que en una base de datos grande con muchas teclas no debe usarla. Para implementaciones más pequeñas, debería estar bien.
fuente
Para obtener el número total de teclas, use el siguiente comando:
fuente
use
DBSIZE
esto no le dará clavepara leer más http://redis.io/commands/dbsize
fuente
Desde Redis 2.6, lua es compatible, puede obtener varias teclas comodín como esta
ver comando eval
fuente
KEYS
para contar llaves (con o sin prefijo) es como tirar al bebé con el agua del baño.#
en este código es el operador de longitud .dbsize()
Devuelve el número total de claves.Puede estimar rápidamente el número de claves que coinciden con un patrón dado al muestrear claves al azar y luego verificar qué fracción de ellas coincide con el patrón.
Ejemplo en python; contando todas las claves que comienzan con
prefix_
:Incluso
iter=100
da una estimación decente en mi caso, pero es muy rápido, en comparación conkeys prefix_
.Una mejora es probar 1000 claves en cada solicitud, pero mantener el recuento total, de modo que después de dos solicitudes se dividirá por 2000, después de tres solicitudes se dividirá por 3000. Por lo tanto, si su aplicación está interesada en el número total de teclas coincidentes con bastante frecuencia, luego cada vez se acercará más y más al valor real.
fuente
Después de Redis 2.6, el resultado del comando INFO se divide por secciones. En la sección "espacio de claves", hay campos "claves" y "claves caducadas" para indicar cuántas claves hay.
fuente
fuente