关于用户登录状态存session,cookie还是数据库或者memcache的优劣

11 篇文章 0 订阅

session中保存登陆状态:
优:整个应用可以从session中获取用户信息,并且查询时很方便.在session中保存用户信息是不可缺少的(web应用中)
缺:session中不宜保存大量信息,会增减内存消耗量

cookie中保存登陆状态:
优:数据保存在客户端,方便用户下次登录.如:”记住我“功能
缺:安全性不高,一般都是讲数据加密后保存在cookie中

memcache应用主要体现在对大量数据的cache,如:将经常用到的数据保存在memcache中,减少对数据库的访问次数,在web应用中也是不可缺少的
缺:当cache爆掉后,造成数据丢失

从效率考虑:cookie > memcache > 数据库
cookie对服务器端负载没影响,如果加密、解密会多消耗一点点cpu。带宽倒是会消耗得多一点,同域名下的所有http request header都会附带cookie,所以在大流量下,把js、css、图片放到另外一个域名下会节约掉这部分流量。
memcache会占用一些服务器内存
数据库连接本来就是典型的瓶颈,能免则免

从安全性考虑:memcache/数据库 > cookie
cookie存放在客户端,需要考虑的安全性比较多一点
memcache、数据库都在服务器端,相对cookie来说会稍微安全点

从服务器可扩展性考虑:cookie > memcache/数据库
如果有多台后端服务器,就需要共享session数据
memcache、数据库都可以做到在多台服务器之间共享session,但是容易形成单点瓶颈,大负载下需要考虑存储路由之类
cookie完全不需要在服务器端共享session数据,与REST无状态风格暗合

可扩展性这个点也不是绝对,如果用nginx的ip_hash方式组织多个后端upstream就不需要共享session,但这些都需要后端架构上的考虑和设计,而cookie则完全没有这方面的扩展性问题

增补:cookie其实也不是在扩展性上没有任何问题需要考虑,说“完全没有”有点绝对了,可扩展性这种事情,复杂度比较高,需要实际问题实际分析。在比较简单理想的情况下,cookie的可扩展性会比较好点

原文链接:http://www.cnblogs.com/bwzhangtao/p/4036794.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值