zoukankan      html  css  js  c++  java
  • Centos7 minimal 系列之Redis共享sessionid(七)

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

    一、SessionId

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

    二、问题和理解

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

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

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

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

      HttpContext.Session.SessionID;

      

    三、保存在redis中

       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);
            }
    

  • 相关阅读:
    java 后台校验格式
    spring AOP 实现事务和主从读写分离
    【Day5】项目实战.CSDN热门文章爬取
    【Day5】3.反爬策略之模拟登录
    【Day5】2.反爬策略之代理IP
    【Day5】1.Request对象之Header伪装策略
    【Day4】5.Request对象之Http Post请求案例分析
    【Day4】4.Request对象之Get请求与URL编码
    【Day4】3.urllib模块使用案例
    【Day4】2.详解Http请求协议
  • 原文地址:https://www.cnblogs.com/WangJunZzz/p/8193540.html
Copyright © 2011-2022 走看看