2014-10-21 10 views
11

Ho installato il client redis Stack Exchange in C#. Posso cancellare solo una chiave o un array di chiavi ma non so come cancellare i tasti con il prefisso. Oppure un'altra soluzione può essere prima ottenere tutte le chiavi per modello e quindi eliminarle. Ma non so come ottenere le chiavi secondo lo schema.Redis Stack Scambio come eliminare o ottenere chiavi per modello

risposta

8

È possibile eseguire le operazioni seguenti per eliminare in gruppo elementi dalla cache redis. (StackExchange.Redis.StrongName v1.0.488)

foreach (var ep in _muxer.GetEndPoints()) 
{ 
    var server = _muxer.GetServer(ep); 
    var keys = server.Keys(database: _redisDatabase, pattern: pattern + "*").ToArray(); 
    _db.KeyDeleteAsync(keys); 
} 

_muxer è istanza di ConnectionMultiplexer

Non elimina dal modello come lei ha chiesto, ma molto più veloce di eliminazione di ogni tasto separatamente.

+0

Come funziona in un cluster? Riceviamo il doppio degli endpoint (inclusi gli slave) e cancelliamo troppe chiavi, dovremmo filtrare per server.IsSlave == false? – MaurGi

+0

Non l'ho provato, ma penso che dovresti invocare gli stessi server usati nei singoli metodi di cancellazione. –

Problemi correlati