Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

रेडिस एसिंक एपीआई

सभी रेडिस क्लाइंट मैनेजर IRedisClientsManager both दोनों को लागू करते हैं और IRedisClientsManagerAsync इसलिए IOC पंजीकरण वही रहता है जो मौजूदा IRedisClientsManager के विरुद्ध पंजीकरण करना जारी रख सकता है इंटरफ़ेस, उदा:

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

जहां इसका उपयोग दोनों सिंक IRedisClient . को हल करने के लिए किया जा सकता है और async IRedisClientAsync क्लाइंट, उदा:

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

यदि आप केवल async-केवल API उपयोग को बाध्य करना चाहते हैं, तो आप केवल IRedisClientsManagerAsync को पंजीकृत करना चुन सकते हैं। जहां यह आपको केवल async को हल करने देता है IRedisClientAsync और ICacheClientAsync क्लाइंट, उदा:

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

सर्विसस्टैक में उपयोग #

सर्विसस्टैक सेवाओं और नियंत्रकों के अंदर हम GetRedisAsync() . का उपयोग करने की सलाह देते हैं 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. रेडिस लेनदेन

  2. सॉकेट.आईओ रेडिस और मेमोरी लीक

  3. रेडिस सिंगल थ्रेड है। फिर मुझे सलाद का उपयोग क्यों करना चाहिए?

  4. त्रुटि:127.0.0.1:6379 से रेडिस कनेक्शन विफल - ECONNREFUSED 127.0.0.1:6379 कनेक्ट करें

  5. क्या रेडिस में अन्य लुआ लिपियों में परिभाषित लुआ कार्यों को कॉल करना संभव है?