Ich habe einen Schlüssel in dem Format zu starten:Stack Redis alle Schlüssel löschen, die mit
Error.1
Error.24
Error.32
StackExchange.Redis
verwenden, wie würde ich mich über KeyDelete
auf allen Tasten, die das Format Error.
Vorstellungen?
Auf einer anderen Antwort, die ich das LUA-Skript gesehen habe:
EVAL "return redis.call('del', unpack(redis.call('keys', ARGV[1])))" 0 Error.*
Aber ich bin nicht sicher, wie diese Database.ScriptEvaluate()
mit anrufen
Ein Wort der Vorsicht. Dieser Code funktioniert, aber Sie sollten einen 'using' Block für die Verbindung haben, z. 'using (var redisConnection = ConnectionMultiplexer.Connect (...)) {/ * Anderer Code innerhalb des using Blocks * /}'. Andernfalls werden Ihre Verbindungen möglicherweise nicht korrekt entsorgt und Sie werden mit Thread-Hunger enden, wie ich gerade in einer meiner Anwendungen festgestellt habe. Ich hatte Task-Manager geöffnet und ich konnte tatsächlich sehen, dass der Thread-Pool mit jeder Anfrage in dieser Anwendung wuchs, während ich debugging. –
@AaronNewton, redis ist single-threaded, so dass Sie immer nur eine Verbindung benötigen. Erstellen Sie beim Start der App eine einzelne statische Verbindung und behalten Sie sie für immer bei. Sie müssen nicht verwenden, wenn Sie dies tun, und in der Tat sollte nicht seit dem Erstellen und Entfernen von Verbindungen ist teuer und jede Millisekunde zählt in einem Caching-Anbieter. – JMD
Danke JMD. Seltsamerweise haben wir uns diesen Code nur angeschaut, da er einige Leistungsprobleme hat. –