2012-11-18 18 views
6

Ho un redis con molti tasti (circa 100), Voglio selezionare solo Chiavi dal tipo di ClassA (solo un esempio).Redis client ChiaviTutte le chiavi di una determinata classe

In questo momento sto facendo GetAllKeys, e quindi andando in un ciclo foreach su tutti gli elementi e selezionando solo i tasti pertinenti.

È possibile selezionare solo i tasti pertinenti e ottenerli tutti con una funzione?

Quando sto facendo GetAll ottengo solo 2 elementi mentre io dovrei andare in giro 45.

+0

Non farlo. Redis non è un database relazionale. Non si suppone di utilizzare il comando KEYS nelle applicazioni: è più un comando di debug. Questo design non si ridimensiona con Redis. –

risposta

4

Seguendo codice vi aiuterà a trovare la chiave specifica, è necessario specificare * carattere jolly dopo stringa, recupererà solo i tasti specifici da Redis Server.

using (RedisClient redisClient = new RedisClient("localhost")) 
{ 
     string searchString = "ClassA*"; 

     var getSpecificKeys = redisClient.SearchKeys(searchString); 

     foreach (var getKey in getSpecificKeys) 
     { 
      // operation 
     } 
    } 
+3

Da http://redis.io/commands/keys Attenzione: considerare KEYS come un comando che dovrebbe essere utilizzato solo in ambienti di produzione con estrema attenzione. Potrebbe rovinare le prestazioni quando viene eseguito su database di grandi dimensioni. Questo comando è destinato al debug e alle operazioni speciali, come la modifica del layout dello spazio delle chiavi. Non utilizzare KEYS nel normale codice dell'applicazione. Se stai cercando un modo per trovare le chiavi in ​​un sottoinsieme del tuo spazio delle chiavi, prova a utilizzare i set. – DanB

+0

Cosa succede se utilizzo IDatabase anziché RedisClient? Come posso ottenere tutte le chiavi nel db? – ayasha

Problemi correlati