小编sur*_*ret的帖子

IDatabase 的 StackExchange.Redis 依赖注入?

所以根据 StackExchange.Redis 文档,我要重新使用IConnectionMultiplexer

services.AddSingleton<IConnectionMultiplexer>(
        ConnectionMultiplexer
              .Connect($"{configsOptions.RedisUrl},password={secretsOptions.RedisPassword}"));

Run Code Online (Sandbox Code Playgroud)

但后来我发现在我的 redis 服务方法中,我必须注入 IConnectionMultiplexer 然后连接到数据库,如下所示:

public Task GetSomethingFromRedis(string key)
{
    IDatabase db = connectionMultiplexer.GetDatabase();
    string value = db.StringGet(key);
}
Run Code Online (Sandbox Code Playgroud)

不用connectionMultiplexer.GetDatabase()每次都调用,我可以像这样注入对象的单例吗?IDatabase或者这真的是一个坏主意吗?

services.AddSingleton<IDatabase>(cfg =>
   {
         var redisConnection = 
         ConnectionMultiplexer
            .Connect($"{configsOptions.RedisUrl},password={secretsOptions.RedisPassword}");

         return redisConnection.GetDatabase();
   });
Run Code Online (Sandbox Code Playgroud)

c# stackexchange.redis .net-5

8
推荐指数
1
解决办法
6370
查看次数

标签 统计

.net-5 ×1

c# ×1

stackexchange.redis ×1