2011-09-18 11 views

risposta

10
REDIS.keys("thing1:*") 

Tuttavia, è possibile prendere in considerazione l'utilizzo di una mappa.

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

Fare attenzione con questo in produzione. Redis può elaborare solo un comando alla volta e KEYS è molto lento. Deve esaminare ogni chiave nell'intero database.

+0

hey, sì sto usando una mappa in questo momento, ma credo che sarebbe utile ad un più basso livello dal momento che ho solo una volta ogni tanto. Solo bisogno di fare sicuro di poter ancora ottenere tutte le chiavi quando necessario. Grazie! – fancy

0

C'è un comando KEYS in Redis che cercano tutti i nomi chiave per modello specificato. Dovresti comunque fare attenzione quando usi questo comando dato che ha una complessità di tempo O (N), quindi le prestazioni dipendono dalla quantità di chiavi nel tuo database. È piuttosto progettato per il debug e non adatto agli ambienti di produzione.

1

È anche possibile tenere traccia degli ID in un elenco e recuperare i valori di tutti i tasti (o degli hash) utilizzando SORT http://redis.io/commands/SORT.

è un po 'più complicato di "CHIAVI", ma può fare di più così (:

Ho letto da qualche parte che hgetall può dare problemi se si dispone di troppi campi in un hash, purtroppo non posso trovare il bancomat di riferimento

0

è possibile utilizzare SCAN comando per iterare su tutti i tasti che corrisponde determinato modello:.

> SCAN 0 MATCH thing1:* 
1) "172032" 
2) 1) "thing1:userid1" 
    2) "thing1:userid2" 
> SCAN 172032 MATCH thing1:* 
1) "0" 
2) 1) "thing1:userid3" 
Problemi correlati