您可以使用此方法,利用异步/等待功能和redis管道,使用堆栈交换redis客户端按模式删除密钥
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您可以调整pageSize或将其作为方法参数接收。



