架构师_程序员

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1581|回复: 0

[ASP.NET] .Net分布式架构:基于Redis的Session共享

[复制链接]
发表于 2018-10-15 13:26:55 | 显示全部楼层
一: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功能
   367511-20160420171913491-1771416070.png 367511-20160420171927163-1396717606.png

  分别对应的View视图
   367511-20160420172053882-699307070.png 367511-20160420172104898-358175441.png

   (2)RedisProvider配置:Microsoft.Web.RedisSessionStateProvider
    用Nuget安装Microsoft.Web.RedisSessionStateProvider,如下图:
    367511-20160420172508960-1789624607.png
        修改配置文件:
    367511-20160420172629991-120982007.png


四:负载均衡Session测试

  (1)浏览器中输入:http://192.168.152.128/   创建Session
   367511-20160420180622195-66282853.png

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

  从图中可以看到站点A共享站点B创建的Session。
  从redis中也可以看出刚刚创建的Session,如下图
   367511-20160420182629538-2112978345.png






上一篇:Asp.Net MVC 原生EF插入,更新数据的正确方法
下一篇:Angular6 引入jquery和bootstrap
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|Archiver|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2020-7-4 23:22

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表