首页 新闻 会员 周边

高并发解决方案

0
悬赏园豆:5 [已解决问题] 解决于 2014-01-11 21:41

类似一个抢票的登陆 在这种高并发下怎么保证登陆的成功率 谢谢大家 没有这方面的经验 求教

Ganler1988的主页 Ganler1988 | 初学一级 | 园豆:3
提问于:2014-01-10 22:30
< >
分享
最佳答案
0

登录 无非是 用户名密码验证是否和服务端是否能匹配,最多再加上一个验证码,高并发的情况下,如果使用查询数据的方式就很会很慢,一般都是第一次去查询数据库,然后直接加到缓存中,下次再登陆直接去缓存匹配,使用字典来保存这些信息,为防止缓存对象随着数据的增加越来越大,每个字典项设置过期时间,写一个定时,定时清理过期的内容,这样会大大提高并发下的成功率

收获园豆:5
Elent_wu | 菜鸟二级 |园豆:207 | 2014-01-11 16:02

你的意思是先把用户信息加载到缓存 然后再用户登录的时候去缓存进行登录匹配?然后定期更新缓存?

Ganler1988 | 园豆:3 (初学一级) | 2014-01-11 17:09

@Ganler1988: 大概就是这样,一般不建议一次性把所有的用户信息加到缓存中,这样如果用户量比较大 这个缓存对象就会非常庞大,建议如果有用户需要验证,就把该用户加到缓存中。

可能我说的不够明白,我用word大致画了一下流程,如下

Elent_wu | 园豆:207 (菜鸟二级) | 2014-01-11 21:27

@Elent_wu: 我刚看完也想了如果把所有用户信息插入缓存 简直不敢想象 你画的图的意思是 用户登录先去缓存检查有没有这个用户的信息 如果没有去数据库 (处理完了把这个用户信息插入缓存) 如果在缓存已经存在这个用户信息那么在缓存里面处理并且重置时间 是这样吗?

Ganler1988 | 园豆:3 (初学一级) | 2014-01-11 21:30

@Ganler1988: 是的。

Elent_wu | 园豆:207 (菜鸟二级) | 2014-01-11 21:40
其他回答(3)
0

……登陆一般不是瓶颈,不会有那么多人在某一刻来跟你登陆的!

滴答的雨 | 园豆:3660 (老鸟四级) | 2014-01-11 09:27
0

楼上说得有道理

angelshelter | 园豆:9887 (大侠五级) | 2014-01-11 13:01
0

@Elent_wu  这个方法听上去貌似不错的样子。

aehyok | 园豆:1212 (小虾三级) | 2014-01-11 16:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册