zoukankan      html  css  js  c++  java
  • web session 共享实现方式

    <pre name="code" class="sql">一,利用数据库同步session
      1,用一个低端电脑建个数据库专门存放web服务器的session,或者,把这个专门的数据库建在文件服务器上,用户访问web服务器时,会去这个专门的数据库check一下session的情况,以达到session同步的目的。
      2,这种方法是把存放session的表和其他网站注册量数据库表放在一起,如果mysql也做了集群了话,每个mysql节点都要有这张表,并且这张session表的数据表要实时同步。
      说明:用数据库来同步session,会加大数据库的负担,数据库本来就是容易产生瓶颈的地方,如果把session还放到数据库里面,无疑是雪上加霜。上面的二种方法,第一点方法较好,把放session的表独立开来,减轻了真正数据库的负担
      二,利用cookie同步session
      session是存放在服务器端的,cookie是存放在客户端的,怎么实现同步呢?方法很简单,就是把用户访问页面产生的session放到cookie里面,就是以cookie为中转站。你访问web服务器A,产生了session把它放到cookie里面了,你访问被分配到web服务器B,这个时候,web服务器B先判断服务器有没有这个session,如果没有,在去看看客户端的cookie里面有没有这个session,如果也没有,说明session真的不存,如果cookie里面有,就把cookie里面的sessoin同步到web服务器B,这样就可以实现session的同步了。
      说明:这种方法实现起来简单,方便,也不会加大数据库的负担,但是如果客户端把cookie禁掉了的话,那么session就无从同步了,这样会给网站带来损失;cookie的安全性不高,虽然它已经加了密,但是还是可以伪造的。
      三,利用memcache同步session
      memcache可以做分布式,如果没有这功能,他也不能用来做session同步。他可以把web服务器中的内存组合起来,成为一个”内存池”,不管是哪个服务器产生的sessoin都可以放到这个”内存池”中,其他的都可以使用。
      优点:以这种方式来同步session,不会加大数据库的负担,并且安全性比用cookie大大的提高,把session放到内存里面,比从文件中读取要快很多。
      缺点:memcache把内存分成很多种网站注册量规格的存储块,有块就有大小,这种方式也就决定了,memcache不能完全利用内存,会产生内存碎片,如果存储块不足,还会产生内存溢出。
    
    四,利用F5设备
     不需要redis和memcache 这些飞机
    F5 本身有SESSION 保持的 你第一次访问A机器 下面的请求都在A上
    不存在跨主机的请求 
    


    
                                        
    
  • 相关阅读:
    Jquery的函数
    Jquery的$.ajax()函数$.get(),$.post(),$.getjson(),$.ajax()
    $.ajax()详解
    JSON 数据格式,能比较清晰容易理解的解读json
    练习:WinForm 对话框控件(文件读取、写入)
    练习:WinForm 对话框控件(显示、获取)
    练习:WinForm--DataGridView增删改查完整版
    Chapter 10. WinForm-DataGridView(确认删除、多条件查询、数据区别显示)
    Chapter 10. WinForm-DataGridView
    练习:WinForm 计算器
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351372.html
Copyright © 2011-2022 走看看