我想在 ASP.NET Core 项目中实现分布式缓存(Redis)。经过一番研究后,我发现有两种方法可以使用 Startup.cs 和 ConnectionMultiplexer 中的 AddStackExchangeRedisCache 创建 Redis 连接
AddStackExchangeRedisCache - 这发生在 Startup.cs 中。 对上述方法的疑惑:
这在 Prod 环境中有效吗?
何时以及如何初始化连接?
创建连接是线程安全的方式吗?
通过使用 ConnectionMultiplexer,我们可以初始化数据库实例。根据几篇文章,延迟初始化也将照顾线程安全
疑问:
- 从以上方法来看,哪种方法更好?
我在我的本地机器上尝试了这两种方法都工作正常。但我找不到上述方法的优缺点。
最佳答案
借助 ConnectionMultiplexer,您拥有可在 Redis 服务器上执行的完整命令列表。使用 DistributedCaching,您只能存储/检索字节数组或字符串,而不能执行 Redis 提供的任何其他命令。因此,如果您只想将其用作缓存存储,DistributedCaching 提供了一个很好的抽象层。但是,除非您使用 ConnectionMultiplexer,否则即使是最简单的 Redis 增量/减量命令也不可用。
关于redis - 在 StartUp.cs 中通过 ConnectionMultiplexer 和 AddStackExchangeRedisCache(IDistributedCache) 使用 Redis 缓存的主要区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56272957/