Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Redis Async API

Semua Manajer Klien Redis menerapkan keduanya IRedisClientsManager dan IRedisClientsManagerAsync jadi pendaftaran IOC tetap sama yang dapat terus mendaftar dengan IRedisClientsManager yang ada antarmuka, misalnya:

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

Di mana itu dapat digunakan untuk menyelesaikan kedua sinkronisasi IRedisClient dan async IRedisClientAsync klien, mis:

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

Jika Anda ingin memaksa penggunaan API async-only bisa memilih untuk mendaftar IRedisClientsManagerAsync di mana itu hanya memungkinkan Anda menyelesaikan async saja IRedisClientAsync dan ICacheClientAsync klien, mis:

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

Penggunaan di ServiceStack #

Di dalam ServiceStack Services &Controllers, kami sarankan menggunakan GetRedisAsync() untuk menyelesaikan 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis failover dengan StackExchange / Sentinel dari C#

  2. Redis lua kapan harus benar-benar menggunakannya?

  3. Redis - Sambungkan ke Server Jarak Jauh

  4. Jest dan Redis (masalah pengujian unit dengan cache database)

  5. Metode yang lebih cepat untuk memindahkan data redis ke MySQL