1 回答

TA貢獻1934條經驗 獲得超2個贊
這取決于您的業務。如果您的業務需要;
如果用戶未登錄您的網站,您可以保存在他們的 cookie 本地存儲中。
如果用戶通過身份驗證,您可以從 cookie 中獲取所有購物車并保存到您的數據庫中
如果沒有登錄付款,那么您不必在用戶的 cookie 和數據庫之間移動它們。
如果用戶可能從多個平臺登錄,而你想統一購物車,那么你需要將購物車保存在你的數據庫(mysql 或任何其他數據庫)中。
您可以使用其他數據庫技術,例如redis
帶有過期選項的哈希。它非??欤艺J為它涵蓋了cart
.
使用會話標識符創建哈希
用于
EXPIRE
設置生存時間(可能是 24 小時)- O(1)用于
HSET
添加產品及其數量 - 每個字段/值的 O(1)用于
HINCRBY
增加數量 - O(1)用于
HDEL
刪除具有各自數量的產品 - 單個字段的 O(1)用于
HGETALL
獲取所有購物車。- O(N) 字段數。
127.0.0.1:6379> hset user:somesessionidentifier:cart productid:2 5
(integer) 1
127.0.0.1:6379> expire user:somesessionidentifier:cart 86400
(integer) 1
127.0.0.1:6379> ttl user:somesessionidentifier:cart
(integer) 86394
127.0.0.1:6379> hset user:somesessionidentifier:cart productid:3 1
(integer) 1
127.0.0.1:6379> hset user:somesessionidentifier:cart productid:92 1
(integer) 1
127.0.0.1:6379> hset user:somesessionidentifier:cart productid:5 1
(integer) 1
127.0.0.1:6379> hgetall user:somesessionidentifier:cart
1) "productid:2"
2) "5"
3) "productid:3"
4) "1"
5) "productid:92"
6) "1"
7) "productid:5"
8) "1"
127.0.0.1:6379> HINCRBY user:somesessionidentifier:cart productid:2 1
(integer) 6
127.0.0.1:6379> HDEL user:somesessionidentifier:cart productid:5
(integer) 1
127.0.0.1:6379> hgetall user:somesessionidentifier:cart
1) "productid:2"
2) "6"
3) "productid:3"
4) "1"
5) "productid:92"
6) "1"
127.0.0.1:6379>
- 1 回答
- 0 關注
- 199 瀏覽
添加回答
舉報