首页 > 在接一个电商web项目,发现它购物车是通过服务器端内存实现的

在接一个电商web项目,发现它购物车是通过服务器端内存实现的

session里存储一个标识,用于关联购物车,购物车对象存储在服务器内存中。这是我第一次做电商的项目,所以也不知道别的电商的购物车一般是怎么实现的。比较好奇我这个项目的做法有什么利弊,属于什么水平,求指点?


PHP提供的SESSION机制使用简单,但缺点也是很明显的,比如实现购物车功能:
一个在手机上登录的用户,添加了多个商品到购物车.
当这个用户在电脑上登录后,并不能获取购物车里的内容,因为这两次登录生成的PHP SESSION ID是不同的.
所以大多数网站,都是基于COOKIE和数据库实现身份验证和购物车等功能的.
先说身份验证,cookie里存用户ID和密码哈希,验证时根据ID查询数据库的用户密码,经过同样的哈希算法计算后,
跟$_COOKIE里的密码哈希比对,一致则通过认证.然后就可以根据用户ID查询购物车数据表里的商品记录了.


数据也不可靠,要是重新发版本所有用户的购物车就清空了,这也太悲剧了吧!偷懒的做法!


利:

弊:


我也会这样去做. 好处是跨客户端.
不过我觉得直接存数据库会更好,用户量大的话怕查询慢可以分库分表. 内存存储数据是为了 cache,比如 memcache,redis 数据都是放在内存(虽然 redis 可以持久化).用来做对高频访问页面或者性能差的处理做缓存, 用来存购物车浪费.


iwebshop的吧,用session存很明显用户退出登录购物车就清空了;一般来说最好在数据库里建一张carts表,记住session id,user id,product id和规格产品id,只要用户不删除购物车一直会被保留


一般都是用cookie实现


感觉缺少持久化和同步机制,还有LRU


可以考虑这样更改:
1.购物改用cookie实现,集群没啥问题,缺点cookie也有大小限制。
2.存后台的分布式memcache等高性能的nosql,定期清理过期的数据等也需要考虑。

【热门文章】
【热门文章】