1 回答
TA贡献1934条经验 获得超2个赞
这取决于您的业务。如果您的业务需要;
如果用户未登录您的网站,您可以保存在他们的 cookie 本地存储中。
如果用户通过身份验证,您可以从 cookie 中获取所有购物车并保存到您的数据库中
如果没有登录付款,那么您不必在用户的 cookie 和数据库之间移动它们。
如果用户可能从多个平台登录,而你想统一购物车,那么你需要将购物车保存在你的数据库(mysql 或任何其他数据库)中。
您可以使用其他数据库技术,例如redis
带有过期选项的哈希。它非常快,我认为它涵盖了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 关注
- 159 浏览
添加回答
举报