a***i 发帖数: 39 | 1 【 以下文字转载自 StartUp 讨论区 】
发信人: axjti (cheng!), 信区: StartUp
标 题: 讨论一下怎么处理以登陆的用户
发信站: BBS 未名空间站 (Sun May 11 19:46:20 2008)
用一个db table去maintain以登陆用户的session,有什么好处和坏处? |
a***i 发帖数: 39 | 2 从startup转来这个版,希望大家多多赐教
【在 a***i 的大作中提到】 : 【 以下文字转载自 StartUp 讨论区 】 : 发信人: axjti (cheng!), 信区: StartUp : 标 题: 讨论一下怎么处理以登陆的用户 : 发信站: BBS 未名空间站 (Sun May 11 19:46:20 2008) : 用一个db table去maintain以登陆用户的session,有什么好处和坏处?
|
A*L 发帖数: 2357 | 3 好处好像很多,坏处不知道啊,我在想会不会有安全问题。
我看了一下wordpress,它有table记载当前用户的。
【 以下文字转载自 StartUp 讨论区 】
发信人: axjti (cheng!), 信区: StartUp
标 题: 讨论一下怎么处理以登陆的用户
发信站: BBS 未名空间站 (Sun May 11 19:46:20 2008)
用一个db table去maintain以登陆用户的session,有什么好处和坏处?
【在 a***i 的大作中提到】 : 【 以下文字转载自 StartUp 讨论区 】 : 发信人: axjti (cheng!), 信区: StartUp : 标 题: 讨论一下怎么处理以登陆的用户 : 发信站: BBS 未名空间站 (Sun May 11 19:46:20 2008) : 用一个db table去maintain以登陆用户的session,有什么好处和坏处?
|
c******l 发帖数: 36 | 4 好处是你可以方便保持和维护持久数据,数据库吗要查个什么东西
当然很方便了:)
坏处是你必须事先设计好需要存储的信息,以后要是你想存些新的
状态信息,得添加新的列或表,不是很灵活
另外,你可能每个request都要读或者写这些状态信息,如果访问数量比较大
的话,会加重DB的overhead。虽然你可以加个Cache做front来
消化DB的“读”操作,你还得把Cache和DB之间的communication设计好了。
其实最简单的还是存在文件系统里面,比较流行的例如BerkeleyDB,实际操作
起来可以是一个hash,添加新独立信息很容易,不受传统DB表格
的限制,而且速度非常快。。
my 2 cents
【在 a***i 的大作中提到】 : 【 以下文字转载自 StartUp 讨论区 】 : 发信人: axjti (cheng!), 信区: StartUp : 标 题: 讨论一下怎么处理以登陆的用户 : 发信站: BBS 未名空间站 (Sun May 11 19:46:20 2008) : 用一个db table去maintain以登陆用户的session,有什么好处和坏处?
|
a***i 发帖数: 39 | 5 我直接些个cookie到用户browser里面可以吗
【在 c******l 的大作中提到】 : 好处是你可以方便保持和维护持久数据,数据库吗要查个什么东西 : 当然很方便了:) : 坏处是你必须事先设计好需要存储的信息,以后要是你想存些新的 : 状态信息,得添加新的列或表,不是很灵活 : 另外,你可能每个request都要读或者写这些状态信息,如果访问数量比较大 : 的话,会加重DB的overhead。虽然你可以加个Cache做front来 : 消化DB的“读”操作,你还得把Cache和DB之间的communication设计好了。 : 其实最简单的还是存在文件系统里面,比较流行的例如BerkeleyDB,实际操作 : 起来可以是一个hash,添加新独立信息很容易,不受传统DB表格 : 的限制,而且速度非常快。。
|
a***i 发帖数: 39 | 6 logged user很难做成bdb吧,如果你有一堆box,怎么sync啊
【在 c******l 的大作中提到】 : 好处是你可以方便保持和维护持久数据,数据库吗要查个什么东西 : 当然很方便了:) : 坏处是你必须事先设计好需要存储的信息,以后要是你想存些新的 : 状态信息,得添加新的列或表,不是很灵活 : 另外,你可能每个request都要读或者写这些状态信息,如果访问数量比较大 : 的话,会加重DB的overhead。虽然你可以加个Cache做front来 : 消化DB的“读”操作,你还得把Cache和DB之间的communication设计好了。 : 其实最简单的还是存在文件系统里面,比较流行的例如BerkeleyDB,实际操作 : 起来可以是一个hash,添加新独立信息很容易,不受传统DB表格 : 的限制,而且速度非常快。。
|
c******l 发帖数: 36 | 7 cookie传递的信息太有限了吧,还有个保密的问题。。
一般传个session id就差不多了:)
【在 a***i 的大作中提到】 : 我直接些个cookie到用户browser里面可以吗
|
c******l 发帖数: 36 | 8 这个应该没有问题,你每个request是不是都要读这些
状态信息?读BDB的速度比直接读DB快多了。。一堆box的
话我没有试过,应该是有一做load balancer的Proxy server,
状态信息存储在上面,传递到具体的web server上需要其他的
一些技术。。如果你是 Perl guy 的话可以看看 Perlbal 或
相关技术。。
【在 a***i 的大作中提到】 : logged user很难做成bdb吧,如果你有一堆box,怎么sync啊
|
a***i 发帖数: 39 | 9 不是每个request都要读,我在想,db里存session info,session_id放cookie里,在
放一些很基本的信息就可以了,我用perl很多但现在在用php :)
【在 c******l 的大作中提到】 : 这个应该没有问题,你每个request是不是都要读这些 : 状态信息?读BDB的速度比直接读DB快多了。。一堆box的 : 话我没有试过,应该是有一做load balancer的Proxy server, : 状态信息存储在上面,传递到具体的web server上需要其他的 : 一些技术。。如果你是 Perl guy 的话可以看看 Perlbal 或 : 相关技术。。
|
a***i 发帖数: 39 | 10 找到了这个
http://www.tonymarston.net/php-mysql/session-handler.html
【在 c******l 的大作中提到】 : 这个应该没有问题,你每个request是不是都要读这些 : 状态信息?读BDB的速度比直接读DB快多了。。一堆box的 : 话我没有试过,应该是有一做load balancer的Proxy server, : 状态信息存储在上面,传递到具体的web server上需要其他的 : 一些技术。。如果你是 Perl guy 的话可以看看 Perlbal 或 : 相关技术。。
|