Ank*_*ain 13 redis stackexchange.redis asp.net-core-mvc
我想在 ASP.NET Core 项目中实现分布式缓存(Redis)。经过一番研究,我发现有两种方法可以使用 Startup.cs 和 ConnectionMultiplexer 中的 AddStackExchangeRedisCache 创建 Redis 连接
创建连接是线程安全的方式吗?
通过使用 ConnectionMultiplexer,我们可以初始化数据库实例。根据几篇文章,延迟初始化也会照顾到线程安全
疑问: 1. 从以上方法来看,哪种方法更好?
我在我的本地机器上尝试了两种方法都工作正常。但我找不到上述方法的优缺点。
请帮忙。提前致谢
BR, 安吉特
Ahm*_*met 13
使用 ConnectionMultiplexer,您可以获得可以在 Redis 服务器上执行的完整命令列表。使用 DistributedCaching,您只能存储/检索字节数组或字符串,而不能执行 Redis 提供的任何其他命令。所以如果你只是想把它用作缓存存储,DistributedCaching 提供了一个很好的抽象层。但是,除非您使用 ConnectionMultiplexer,否则即使是最简单的 Redis 递增/递减命令也将不可用。
enz*_*nzi 10
扩展方法在幕后AddStackExchangeRedisCache
使用 a ConnectionMultiplexer
(参见此处和此处了解扩展方法本身)。
@2:无论哪种方式都可以在产品中工作
@3:在第一次使用时延迟建立连接,ConnectionMultiplexer
实例被重用(注册为 DI 单例)
@4:是的,见上文。在这里, aSemaphoreSlim
用于确保连接只创建一次
优点和缺点:由于两者都使用ConnectionMultiplexer
,因此它们非常相似。
您可以在使用与实现无关的优势IDistributedCache
与直接使用多路复用器和 StackExchange.Redis API(其具有比接口更具体的功能)之间进行选择。
归档时间: |
|
查看次数: |
4283 次 |
最近记录: |