Die einfachste Art und Weise Tasten durch Muster löschen verwendet keys
Befehl die Schlüssel zu erhalten, die Pattern-Matching und dann eins nach dem anderen zu löschen, die ähnelt dem von Ihnen bereitgestellten Befehlszeilenbeispiel. Hier ist ein Beispiel mit ioredis implementiert:
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();
});
Allerdings, wenn Sie Ihre Datenbank eine große Menge von Schlüsseln hat (etwa eine Million), keys
wird die Datenbank für mehrere Sekunden blockieren. In diesem Fall ist scan
nützlicher. ioredis hat scanStream
Funktion, die Sie über die Datenbank durchlaufen zu helfen, leicht:
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');
});
Vergessen Sie nicht, für weitere Informationen die offizielle Dokumentation von scan
Befehl zu überprüfen: http://redis.io/commands/scan.
Ich denke, mit 'unlink' ist effizienter als 'del' wie zum Beispiel' redis.unlink (keys) 'und löscht die' pipeline' und die 'forEach' Schleife. –