आप इस विधि का उपयोग कर सकते हैं जो स्टैक एक्सचेंज रेडिस क्लाइंट का उपयोग करके पैटर्न द्वारा कुंजियों को हटाने के लिए एसिंक/प्रतीक्षा सुविधाओं और रेडिस पाइपलाइनिंग का लाभ उठाती है
private static Task DeleteKeysByPatternAsync(string pattern)
{
IDatabase cache1 = Connection.GetDatabase();
var redisServer1 = Connection.GetServer(Connection.GetEndPoints().First());
var deleteTasks = new List<Task>();
var counter = 0;
foreach (var key in redisServer1.Keys(pattern: pattern, database: 0, pageSize: 5000))
{
deleteTasks.Add(cache1.KeyDeleteAsync(key));
counter++;
if (counter % 1000 == 0)
Console.WriteLine($"Delete key tasks created: {counter}");
}
return Task.WhenAll(deleteTasks);
}
फिर आप इसे इस तरह इस्तेमाल कर सकते हैं:
DeleteKeysByPatternAsync("*user:*").Wait(); //If you are calling from main method for example where you cant use await.
या
await DeleteKeysByPatternAsync("*user:*"); //If you run from async method
आप पृष्ठ का आकार बदल सकते हैं या विधि परम के रूप में प्राप्त कर सकते हैं।