電商:購物車模塊解決思路


購物車的存儲模式(思路):

  思考:在用戶登錄與未登錄狀態都可以操作購物車(將商品添加到購物車),可以選擇將購物車信息根據指定的用戶名或者通過一個唯一的key值放入cookie中存儲,但是cookie中存儲大小是有限制的(4kb),所以可以考慮將購物車信息放入Redis中進行存儲。

步驟:

  1、在用戶未登錄時:通過UUID工具類隨機生成一個唯一key值,將其保存到cookie中,然后將其以cookie中的key值作為key通過redisTemplate.boundHashOps("cartList").put(uuid, cartList);保存到Redis緩存中。未登錄時按照uuid到Redis緩存中取購物車信息redisTemplate.boundHashOps("cartList").get(uuid)

  2、在用戶登錄后:以用戶名(sellerId)作為key值將購物車信息保存到Redis存儲,redisTemplate.boundHashOps("cartList").put(username, cartList);
並將未登錄時的購物車合並到已經的登錄的購物車中,為了優化性能,需要先判斷未登錄時購物車中是否有商品,

  (1)如果未登錄時的Redis緩存購物車中有商品(購物車長度大於0),則進行合並(遍歷未登錄時的購物車,調用添加商品到購物車的方法進行合並),然后將合並的購物車更新到登錄后的購物車Redis緩存中,同時清空未登錄時保存在Redis中的購物車信息。

  (2)如果未登錄時的Redis緩存購物車中沒有商品(購物車長度小於0),則直接將登錄時的購物車信息進行返回


免責聲明!

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



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