京东上的购物车是放在SESSION里的,他那个SESSION存放在时间是比较长的,长达几个月,如果有10万人的购物车里有信息,那么京东服务器上的SESSION目录的SESSION信息文件岂不是很多??他们会不会根据用户ID来划分目录,避免某个目录下的文件过多呢??
京东上的购物车是放在SESSION里的,他那个SESSION存放在时间是比较长的,长达几个月,如果有10万人的购物车里有信息,那么京东服务器上的SESSION目录的SESSION信息文件岂不是很多??他们会不会根据用户ID来划分目录,避免某个目录下的文件过多呢??
PHP Session 存储方式为临时文件,这只是默认的。
事实上绝大多数初具规模的站点都修改了存储方式,原因就是你讲到的避免出现令人意外的系统开销。Session 文件过万之后,会对系统造成负担,首先表现就是 web server 负荷增高,硬盘 io 增大,直至停止响应。可以用数据库、内存表、缓存随便什么,资料许多你自己找吧。
电商网站(京东和淘宝是这样)的购物车,未登录状态关联的是你的 session(用客户端 cookie 识别你),登陆后立刻移至你的账号下,这里不是 $session['product'] = []; 这么简单,还做了挺多针对用户的处理。而且鉴于运营需要,别说是几个月,可能是过去几年你加入购物车的、你浏览过的都在他们的日志系统里,只不过不给你看,转化成数据帮它们做决策了。
开发app、除了静态文件,最好不要涉及到文件存储,慢,事多。