redis - 在 StartUp.cs 中通过 ConnectionMultiplexer 和 AddStackExchangeRedisCache(IDistributedCache) 使用 Redis 缓存的主要区别是什么?

标签 redis asp.net-core-mvc stackexchange.redis

我想在 ASP.NET Core 项目中实现分布式缓存(Redis)。经过一番研究后,我发现有两种方法可以使用 Startup.cs 和 ConnectionMultiplexer 中的 AddStackExchangeRedisCache 创建 Redis 连接

  1. AddStackExchangeRedisCache - 这发生在 Startup.cs 中。 对上述方法的疑惑:

  2. 这在 Prod 环境中有效吗?

  3. 何时以及如何初始化连接?

  4. 创建连接是线程安全的方式吗?

  5. 通过使用 ConnectionMultiplexer,我们可以初始化数据库实例。根据几篇文章,延迟初始化也将照顾线程安全

疑问:

  1. 从以上方法来看,哪种方法更好?

我在我的本地机器上尝试了这两种方法都工作正常。但我找不到上述方法的优缺点。

最佳答案

借助 ConnectionMultiplexer,您拥有可在 Redis 服务器上执行的完整命令列表。使用 DistributedCaching,您只能存储/检索字节数组或字符串,而不能执行 Redis 提供的任何其他命令。因此,如果您只想将其用作缓存存储,DistributedCaching 提供了一个很好的抽象层。但是,除非您使用 ConnectionMultiplexer,否则即使是最简单的 Redis 增量/减量命令也不可用。

关于redis - 在 StartUp.cs 中通过 ConnectionMultiplexer 和 AddStackExchangeRedisCache(IDistributedCache) 使用 Redis 缓存的主要区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56272957/

相关文章:

tcp - 如何将 Redis 流量从单一来源复制到多个目的地

redis - Apache beam with redis - 选择数据库并从哈希中读取?

asp.net-core - 如何在asp.net core 1.0中获取当前的url

redis - 如何使用 StackExchange.Redis 客户端在特定的 redis 服务器上设置?

docker - StackExchange.Redis.RedisConnectionException : No connection (requires writable - not eligible for replica)

redis - 使用 "Chris Lea Redis PPA"与从 Ubuntu 存储库安装相比有什么优势

redis - Spring Session,嵌入式Redis服务器错误

Redisson - 支持 SCAN

javascript - 如何在 JavaScript : ASP. NET Core 中使用模型数据

c# - 在 ASP.NET Core 中尽快获取当前 URL program.cs/startup.cs