【问题标题】:Session store in InProc vs Redis (Asp.Net MVC 5) with scalability in mindInProc 与 Redis (Asp.Net MVC 5) 中的会话存储考虑了可扩展性
【发布时间】:2018-02-22 01:48:20
【问题描述】:

我无法决定是使用 InProc 还是 Redis 在高性能 Web 应用程序中存储用户会话 + 一些额外数据(用户名、电子邮件...等)

那么两者的优缺点是什么?因为 Redis 选项会存在使用 HTTP 连接的缺点——网络延迟和消耗 HTTP 使用的 TCP 连接。

此外,InProc 是否会阻止应用程序未来使用多个 IIS 工作线程或在不同的服务器上(使用负载平衡)

注意:如果我使用 Redis,我会通过自定义操作属性将会话状态注入控制器中的属性。

【问题讨论】:

    标签: asp.net asp.net-mvc redis scalability session-state


    【解决方案1】:

    在网络场场景中,请求可以发送到网络场中的任何工作进程。如果同一会话的不同请求由不同的工作进程提供服务,则在这种情况下使用进程内会话状态存储可能会导致数据丢失。但是,如果仅使用单个 Web 服务器,则进程内会话状态提供程序应该是最快的,因为没有额外的网络延迟。

    Redis 用作分布式缓存,Redis 会话状态提供程序适用于 Web 场场景,因为 Web 场中的所有各种工作进程都将与单个 Redis 实例进行通信。将 Redis 实例物理放置在 Web 场实例附近可以在一定程度上帮助减少延迟。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      • 1970-01-01
      • 2017-05-11
      • 1970-01-01
      • 2015-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多