Il modo più semplice per eliminare le chiavi di modello sta usando keys
comando per ottenere le chiavi che corrispondono al modello e poi eliminarli uno ad uno, che è simile all'esempio della riga di comando che hai fornito. Ecco un esempio realizzato con ioredis:
var Redis = require('ioredis');
var redis = new Redis();
redis.keys('sample_pattern:*').then(function (keys) {
// Use pipeline instead of sending
// one command each time to improve the
// performance.
var pipeline = redis.pipeline();
keys.forEach(function (key) {
pipeline.del(key);
});
return pipeline.exec();
});
Tuttavia quando il database ha un ampio set di chiavi (diciamo un milione), keys
sarà bloccare il database per alcuni secondi. In tal caso, scan
è più utile. ioredis ha scanStream
funzionalità per aiutare a scorrere i dati con facilità:
var Redis = require('ioredis');
var redis = new Redis();
// Create a readable stream (object mode)
var stream = redis.scanStream({
match: 'sample_pattern:*'
});
stream.on('data', function (keys) {
// `keys` is an array of strings representing key names
if (keys.length) {
var pipeline = redis.pipeline();
keys.forEach(function (key) {
pipeline.del(key);
});
pipeline.exec();
}
});
stream.on('end', function() {
console.log('done');
});
Non dimenticare di controllare la documentazione ufficiale di scan
comando per ulteriori informazioni: http://redis.io/commands/scan.
Penso che usando 'unlink' è più efficiente di 'del' come ad esempio' redis.unlink (keys) 'ed elimina' pipeline' e il ciclo 'forEach'. –