Cookie購物車的流程 Session、Mysql、Redis的流程
購物車信息一般包括購物車、購物項(商品、商品數量),購物車用於計算所有購物項的總金額等信息。購物車信息可以保存在Cookie、Session、Redis或者數據庫中。
1、保存在Cookie中不要求登錄,但必須客戶端支持Cookie,瀏覽器的每次請求都會帶上Cookie,服務端得到購物車信息之后需要將購物車信息保存到Cookie。添加購物車時,獲取商品信息,保存到Cookie中;展示購物車列表時,瀏覽器就會帶上所有的Cookie,服務端從Cookie中獲取購物車信息,展示在頁面。Cookie由於本身的安全限制,必須同域,所以cookie設置其Path為/dgz/cart,必須這個一下的路徑才會獲取到。cookie的方式,由於瀏覽器的cookie信息不共享,所以換個瀏覽器就會丟失購物車信息。
2、另外三種都需要登錄,因為必須建立用戶和服務器之間的唯一聯系。
3、session的存儲方式對服務器的壓力較大,一般不用。
4、Redis有較快的存取速度,但是Cookie 、 Session 、Redis一般都是保存為字符串的方式,涉及購物車信息與字符串之間的轉換,意義不是很明確。序列化和反序列化是瓶頸。
5、數據庫存儲非常明確的表達購物車、購物項、商品、用戶之間的關系。但是頻繁的+-delete商品就會有較大的壓力。
6、購物車的一個關鍵處理是如何界定是否是同一個商品。因為涉及購物車的金額計算,所以必須精確到商品價格的最小粒度(能最終確定價格的粒度),比如用sku來管理商品,那么就精確到sku的值。