Python项目-购物车存储方案

本文介绍了登录和未登录用户购物车数据的存储方案。登录用户购物车数据存储在Redis的Hash和Set中,未登录用户数据则加密后存于浏览器Cookie。详细阐述了存储逻辑、数据类型选择以及安全性考虑。
摘要由CSDN通过智能技术生成

购物车存储方案

用户登录与未登录状态下,都可以保存购物数据。
用户对购物车数据的操作包括:增,删,改,查、全先等等
每个用户的购物车数据都要作唯一 性的标识

登录用户购物车存储方案
存储数据说明
如何描述一条购物车记录
用户ellen,选择了两个iPhone8 添加到购物车中,添加了多少,状态为勾选
一条完整的购物车记录包括:用户、商品、数量、勾选状态。
存储数据:user_id 、sku_id 、count、selected

存储方案可以有两种选择:

  1. 首先可以保存到数据库
  2. 可以保存到缓存Redis里 Redis也是可以做数据持久化,根据购物车记录确定了要保存到Redis里的数据有:用户、商品、数量、勾选状态

存储位置
购物车数据量小,结构简单,更新频繁,所以选择内存型数据库Redis进行存储
存储位置:Redis数据库4号库

"carts": {
   
    "BACKEND": "django_redis.cache.RedisCache",
    "LOCATION": "redis://127.0.0.1:6379/4",
    "OPTIONS": {
   
        "CLIENT_CLASS": "django_redis.client.DefaultClient",
    }
},

存储类型说明
• 我们很难将用户、商品、数量、勾选状态存放到一条Redis记录中。所以我们要把购物车数据合理的分开存储。
• 用户、商品、数量:hash
• carts_user_id: {sku_id1: count, sku_id3: count, sku_id5: count, …}
• 勾选状态:set
• 只将已勾选商品的sku_id存储到set中,比如,1号和3号商品是被勾选的。
• selected_user_id: [sku_id1, sku_id3, …]

复习一下redis中 hash / set 添加值和取值
hmset 添加多个hash值
hset 添加一个hash值
sadd 添加 selected_1 1 set 去重添加值
smebers

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值