V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
flypen
V2EX  ›  问与答

调查一下,Web开发中,大家一般都是把session存放在什么地方?

  •  
  •   flypen · 2012-01-28 14:41:10 +08:00 · 4721 次点击
    这是一个创建于 4678 天前的主题,其中的信息可能已经有所发展或是发生改变。
    内存,文件,MYSQL等关系数据库,还是memcached/redis之类的key-value store?在选择存储位置时,一般有啥顾虑?
    9 条回复    1970-01-01 08:00:00 +08:00
    Los
        1
    Los  
       2012-01-28 15:00:27 +08:00
    rails 的 Session 存储机制中有个基于Cookie的方案,称为 CookieStore
    iammutex
        2
    iammutex  
       2012-01-28 15:05:24 +08:00
    动态页面的session访问量太大,所以我一般用memcached来存~
    flypen
        3
    flypen  
    OP
       2012-01-28 16:07:15 +08:00
    @iammutex 如果重启了memcached服务,那是不是所有session都给丢掉了?
    arden
        4
    arden  
       2012-01-28 16:07:18 +08:00
    redis
    arden
        5
    arden  
       2012-01-28 16:07:33 +08:00
    MySQL + HanderSocket
    notedit
        6
    notedit  
       2012-01-28 17:53:31 +08:00
    @flypen 丢掉了也没什么关系 顶多重新登陆一次 现在用memcache和redis的比较多 如果用户不多的话直接存服务进程里面都可以
    flypen
        7
    flypen  
    OP
       2012-01-29 09:45:35 +08:00
    @notedit session偶尔丢掉倒不是很严重的问题。但是如果有很多很多用户登录,session超时时间又不能设置得太短,则可能会导致内存里面有过多的数据——但是同时在线人数也许并不多,这样造成了对内存的浪费。这样子看上去,用传统数据库是否更好一些了?
    sarices
        8
    sarices  
       2012-01-29 10:01:37 +08:00
    开始用文本,用户多以后用memcache,如果更加多的话一般都是用多台服务器,或者增加内存
    notedit
        9
    notedit  
       2012-01-29 19:58:23 +08:00
    @flypen 一个session能有多大 也就几百字节吧。 就算一个session 1kb 的话,100万个session 也才占用1G的空间。
    传统关系数据库的话对性能就有影响了, 每个请求都要查询数据库。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3536 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:48 · PVG 18:48 · LAX 02:48 · JFK 05:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.