2011-09-18 11 views

Respuesta

10
REDIS.keys("thing1:*") 

Sin embargo, es posible que desee considerar el uso de un mapa.

REDIS.hset("thing1", "user1", "") 
REDIS.hset("thing1", "user2", "") 
REDIDS.hgetall("thing1") 

Tenga cuidado con esto en la producción. Redis solo puede procesar un comando a la vez, y KEYS es muy lento. Tiene que ver todas las claves en toda la base de datos.

+0

bueno, sí que estoy usando un mapa en este momento, pero creo que sería útil a un menor nivel ya que solo me gusta de vez en cuando. Solo necesitaba hacer Seguro que aún podría obtener todas las llaves cuando sea necesario. ¡Gracias! – fancy

0

Hay un comando KEYS en Redis, que buscan todos los nombres de claves para el patrón especificado. Sin embargo, debe tener cuidado al usar este comando ya que tiene una complejidad de tiempo O (N), por lo que el rendimiento depende de la cantidad de claves en su base de datos. Está destinado a la depuración y no es adecuado para entornos de producción.

1

También puede realizar un seguimiento de los identificadores en una lista y luego recuperar los valores de todas las claves (o hash) con SORT http://redis.io/commands/SORT.

Es un poco más complicado que "claves", pero puede hacer más también (:

leí en alguna parte que hgetall le puede dar problemas si tiene demasiados campos en un hash, por desgracia no puedo encontrar la atm referencia

0

puede utilizar SCAN comando para iterar sobre todas las teclas que coinciden dan patrón:.

> SCAN 0 MATCH thing1:* 
1) "172032" 
2) 1) "thing1:userid1" 
    2) "thing1:userid2" 
> SCAN 172032 MATCH thing1:* 
1) "0" 
2) 1) "thing1:userid3" 
Cuestiones relacionadas