zoukankan      html  css  js  c++  java
  • .Net分布式架构(二):基于Redis的Session共享

    一:Session简介

      Session是什么呢?简单来说就是服务器给客户端的一个编号。当一台web服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台web服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份。这个SessionID是由web服务器随机产生的一个由24个字符组成的字符串,我们会在下面的实验中见到它的实际样子。

    二:Asp.Net中Session的集中模式和配置

      (1):InProc,Session存储在进程内,这也是ASP.Net中的存储方式,也是默认值

      (2): StateServer,Session存储在独立的状态服务即ASP.NET State Service中

      (3):SQLServer,Session存储在SQL Server数据库中

      (4):Custom,自定义保存方式,可以保存在Oracle、SQLServer、MongoDb、Redis中

      本片文章主要讲述Session在Redis中的存储和共享

    三:基于Redis的Session Provider配置

     (1)分别对站点A和B的HomeController做如下更改,如下图所示,增加了创建Session和获取Session功能

      

      

      分别对应的View视图

      

       

       (2)RedisProvider配置:Microsoft.Web.RedisSessionStateProvider

        用Nuget安装Microsoft.Web.RedisSessionStateProvider,如下图:

       

            修改配置文件:

       

       Redis的安装请参见:《Redis在Linux环境上的安装和启动》

    四:负载均衡Session测试

      (1)浏览器中输入:http://192.168.152.128/   创建Session

      

         (2)浏览器中输入:http://192.168.152.128/home/getsessionvalue, 打开两个Tab,一定要在同一个浏览器窗口中打开,否则SessionID肯定是不一样

      

      从图中可以看到站点A共享站点B创建的Session。

      从redis中也可以看出刚刚创建的Session,如下图

      

      

  • 相关阅读:
    Python界面常用GUI包
    ATSC/DVB/ISDB三大标准比较
    【MPEG】DVB / ATSC / ISDB区别
    Python判断字符串是否为字母或者数字
    MApp_ZUI_CTL_MarqueeTextWinProc字串滚动
    PWM原理及其在电源中的应用
    按键板的原理与实现 扩展GPIO
    按键板的原理与实现----ADC
    使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比
    SQL Server备份还原数据库中的小把戏
  • 原文地址:https://www.cnblogs.com/sunyj/p/5413495.html
Copyright © 2011-2022 走看看