【发布时间】:2021-12-13 20:35:04
【问题描述】:
我在 .NET 5 中有一个使用 Microsoft.Extensions.Caching.StackExchangeRedis 的 Web API。我已经使用给定包中的扩展方法添加了 Redis 缓存的 IDistributedCache 实现。
services.AddStackExchangeRedisCache(options =>
{
options.Configuration = Configuration.GetConnectionString("RedisConnection");
});
现在,当我从 Redis 请求某些内容时(并且因为它是单例),由于 IDistributedCache 的内部实现 (Github link) 执行一次 ConnectionMultiplexer.Connect(),它应该创建 1 个连接。但是,当我使用redis-cli 并执行client list 命令时,它列出了我总共3 个连接(我中的一个当前通过redis-cli 连接,另外两个来自API。如果发生这种情况,那么, 真的有 1 个连接吗?
127.0.0.1:6379> client list
id=6 addr=127.0.0.1:4396 fd=9 name= age=3305 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
127.0.0.1:6379> client list
id=6 addr=127.0.0.1:4396 fd=9 name= age=3317 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
id=11 addr=127.0.0.1:1046 fd=12 name=PC age=4 idle=3 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=hmget
id=12 addr=127.0.0.1:1048 fd=11 name=PC age=4 idle=4 flags=N db=0 sub=1 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=subscribe
【问题讨论】:
标签: c# asp.net-core redis .net-5 stackexchange.redis