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

 

转载于:https://www.cnblogs.com/WJ--NET/p/8193540.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值