先看hash存储结构
简单画一个购物车
问题引入:
不同的用户的购物车是各用各的;
一个购物车有多个商品;
一个商品有购买数量;
得出:
用户id 作为 key ;
用户所买商品的编号 作为 field ;
对应购买数量 作为 value ;
file 和 value 作为 key 对应的 hash;
操作能否实现:
value 可以拿到做增减,可以设置固定值
file 可以删除,可以全选
hash 可以计算总量,清空,浏览
redis命令简单实现一下
但是!当期设计并没有加速购物车的呈现!
当前仅仅是将数据存储到了redis中,并没有起到加速的作用,商品信息还需要二次查询数据库
- 每条购物车中的商品记录保存成两条field
- field1专用于保存购买数量
- 命名格式:商品id:nums
- 保存数据:数值
- field2专用于保存购物车中显示的信息,包含文字描述,图片地址,所属商家信息等
- 命名格式:商品id:info
- 保存数据: json
当多个人同时买同一个商品,那么商品信息info就会重复加载,所以可以将商品信息(即上边的 file2 单拎出来存储)
使用 hsetnx key file value 命令可以让一种商品只加载一次,有这个信息就不能set,没有才可以set