day79_淘淘商城項目_商城購物車系統實現三種方案總結


1、商城購物車系統實現的三種方案

1.1、session

  將購物車直接存放到與用戶相關的session中。
優點:
  代碼實現超級簡單。
缺點:
  購物車存在session當中,如果session銷毀,購物車就沒有了。(session只存在於一次會話中。)
  用戶未登錄的時候不能添加購物車。
  購物車使用了session,而session是存在於內存資源中,消耗了大量的內存資源。非常不好。
  集群情況下,session很難共享,無法進行水平擴展。(tomcat的session廣播對資源消耗嚴重,即tomcat的帶寬不干別的了,就去廣播了。)

1.2、cookie

  將購物車直接存放到瀏覽器的cookie中。
優點:
  在不登陸的情況下也可以添加購物車。
  不占用服務端存儲空間。
  用戶體驗好。
  代碼實現簡單。
缺點:
  cookie中保存的容量有限。最大4k。
  cookie占用的是瀏覽器的緩存,可能用戶會定期刪除cookie。
  把購物車信息保存在cookie中,更換設備購物車信息不能同步。

1.3、cookie+入庫 / 直接入庫

  對於未登陸用戶,將購物車放到cookie中,對於已登陸用戶將購物車放入數據庫中。
  將購物車持久化到數據庫中。這里的數據庫指的是關系型數據庫或者非關系型數據庫
優點:
  關系型數據庫:mysql數據庫(數據完整性比較好)
  非關系型數據庫:redis數據庫(讀寫速度快)
缺點:
  相對於session和cookie,沒啥缺點。
  占用服務端資源。

2、購物車實現總結

  自己寫着玩的代碼可以使用cookie+session。
  真實場景應該是要使用cookie+入庫,或者直接入庫。
  京東准許未登錄狀態添加購物車,應該采用的是cookie+入庫。
  淘寶並不准許用戶未登錄添加購物車,應該采用的是直接入庫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM