sql >> Database >  >> NoSQL >> Redis

Regio's in Azure-cache/DataCache-stijl in Redis

U kunt deze methode gebruiken die gebruikmaakt van de async/wait-functies en redis-pipelining om sleutels per patroon te verwijderen met behulp van de stack exchange redis-client

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);
}

Dan kun je het als volgt gebruiken:

DeleteKeysByPatternAsync("*user:*").Wait(); //If you are calling from main method for example where you cant use await.

of

await DeleteKeysByPatternAsync("*user:*"); //If you run from async method

U kunt de paginagrootte aanpassen of ontvangen als methodeparameter.



  1. Redis pub/sub voor chatserver in node.js

  2. Naadloze schaal voor uw MongoDB-servers

  3. Waarom zijn er KEYS- en ARGV-arrays bij het aanroepen van Redis Lua-scripts?

  4. Hoe test je een methode die verbinding maakt met mongo, zonder daadwerkelijk verbinding te maken met mongo?