2016-06-13 2 views
2

Früher verwendete unsere Quelle Booksleave-Bibliothek, um eine Verbindung zu Redis herzustellen, und jetzt migrieren wir die Quelle zur Verwendung der StackExchange.Redis-Bibliothek. In der vorhandenen Quelle haben wir den Find-Befehl wie folgt verwendet:Was ist Booksave IKeyCommands.Find gleichwertig in StackExchange.Redis

var t = conn.Keys.Find (Datenbank, keyPattern);

Was ist die äquivalente Funktion für Suchen in der StackExchange.Redis-Bibliothek?

Antwort

2
var server = conn.GetServer(someServer); 

server.Keys(pattern: "*foo*"); 

Wo foo Ihre keypattern ist.

https://github.com/StackExchange/StackExchange.Redis/blob/master/Docs/KeysScan.md

+0

Dank Karthikeyan, das ist, was ich suchte. Ich verwende diese Überladungsschlüssel (int-Datenbank, RedisValue-Muster, int pageSize, CommandFlags-Flags). Der Parameter pageSize bezieht sich hier auf die Anzahl der in einer SCAN-Iteration zurückgegebenen Schlüssel, richtig? Hast du irgendeine Idee? –

+1

In naiven redis-Keys ist ein blockierender Befehl, stattdessen können Sie den Befehl scan mehrfach verwenden, wobei der Cursor zurückgegeben wird, damit er nicht blockiert. In dieser Bibliothek implementieren Schlüssel den Scan intern, um Blockierungen zu vermeiden. Und ja, pageSize bezieht sich hier auf die Anzahl der während jeder Iteration zurückgegebenen Schlüssel. Wenn Sie dies zu viel geben, können Sie einige Blockaden fühlen. Wenn Sie es sehr niedrig geben, wird die Zeit, um diesen Befehl zu übergeben, langsam sein. Wenn Sie verschiedene Bereiche ausprobieren, müssen Sie eine optimale Zahl ermitteln, die zu Ihrem System passt. –

Verwandte Themen