杀人放火厉飞羽,万人敬仰韩天尊。|

WangJunZzz

园龄:9年3个月粉丝:99关注:13

Centos7 minimal 系列之Redis共享sessionid(七)

这一章节的内容就当看看,只是个人理解,我想应该是有误的。

一、SessionId

  sessionid是一个会话的key,浏览器第一次访问服务器会在服务器端生成一个session,有一个sessionid和它对应。

二、问题和理解

  在分布式中实现sessionid共享,自己胡乱琢磨。我这么理解的,通过sessionid作为键,用户信息或者其他信息为值,保存的redis中。

  发现在nginx代理之后,每次的sessionid不需要做任何设置就是相同的。是不是访问的代理地址?从而不需要做其他设置?、

  在网上有说通过cookie保存sessionid,然后获取sessionid和redis中做对比,没有的情况做什么,有的情况做什么,但是负载均衡之后貌似都

  不需要cookie来保存这个了。每次直接可以获取到sesseionid而且还是一样的。

  HttpContext.Session.SessionID;

  

三、保存在redis中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public ActionResult Index()
      {
          ViewBag.ss = HttpContext.Session.SessionID;
          RedisManager redis = new RedisManager();
          TimeSpan ts0 = new TimeSpan(0, 0, 50);
          redis.StringSet(HttpContext.Session.SessionID, "dirk", ts0);
          ViewBag.sss = redis.StringGet(HttpContext.Session.SessionID);
          return View();
      }
 
 
public IDatabase getRedisContext()
      {
          ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("168.33.162.245:7001,168.33.162.245:7001,168.33.162.245:7002,168.33.162.245:7003,168.33.162.245:7004,168.33.162.245:7005,168.33.162.245:7006");
          IDatabase db = redis.GetDatabase();
          return db;
      }
 
      public void StringSet(string key, string value, TimeSpan timeout)
      {
          IDatabase db = getRedisContext();
          bool res = db.StringSet(key, value, timeout);
      }

 

本文作者:WangJunZzz

本文链接:https://www.cnblogs.com/WangJunZzz/p/8193540.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   WangJunZzz  阅读(327)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起