sql >> Databáze >  >> NoSQL >> Redis

Redis Async API

Všichni správci klientů Redis implementují oba IRedisClientsManager a IRedisClientsManagerAsync takže registrace MOV zůstávají stejné, takže se mohou nadále registrovat proti stávajícímu IRedisClientsManager rozhraní, např.:

container.Register<IRedisClientsManager>(c => 
    new RedisManagerPool(redisConnectionString));

Kde jej lze použít k vyřešení synchronizace IRedisClient a asynchronní IRedisClientAsync klienti, např.:

using var syncRedis = container.Resolve<IRedisClientsManager>().GetClient();
await using var asyncRedis = await container.Resolve<IRedisClientsManager>().GetClientAsync();

Pokud chcete vynutit použití pouze asynchronního rozhraní API, můžete zvolit pouze registraci IRedisClientsManagerAsync kde vám umožňuje vyřešit pouze asynchronní IRedisClientAsync a ICacheClientAsync klienti, např.:

public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton<IRedisClientsManagerAsync>(c => new RedisManagerPool());
}

//... 

public class MyDep
{
    private IRedisClientsManagerAsync manager;
    public MyDep(IRedisClientsManagerAsync manager) => this.manager = manager;

    public async Task<long> Incr(string key, uint value)
    {
        await using var redis = await manager.GetClientAsync();
        return await redis.IncrementAsync(key, value);
    }
}

Využití v ServiceStack #

V rámci ServiceStack Services &Controllers doporučujeme použít GetRedisAsync() k vyřešení IRedisClientAsync :

public class MyService : Service
{
    public async Task<object> Any(MyRequest request)
    {
        await using var redis = await GetRedisAsync();
        await redis.IncrementAsync(nameof(MyRequest), 1);
    }
}

public class HomeController : ServiceStackController
{
    public async Task<ActionResult> Index()
    {
        await using var redis = await GetRedisAsync();
        await redis.IncrementAsync(nameof(HomeController), 1);
    }
}

  1. Nastavte klíč/hodnotu redis pomocí camel-redis

  2. Jak začít s automatizací databází

  3. Jaké jsou důsledky zákazu klepů, mísení a tlukotu srdce pro dělníky celeru?

  4. Jak se aerospike liší od jiných databází nosql klíč-hodnota?