1、购物车因为是高频刷新局部,同时对数据关系构造的要求并非很简单,因而选取nosql作为存储工具;
2、前后端须要对接4个参数,别离是用户id,商品编码即sku_id,多少件商品count以及是否勾选 selected;
3、Redis有5种数据类型,别离为string、list、hash、set、zset。而本次的4个参数,数量超过了单一种数据结构的管制范畴,因而选用2个数据结构进行独特保护;
4、用户id,skuid以及count采纳hash构造,即:
cart_user_id:{sku_id1:count,sku_id2:count,sku_id3:count....}
5、用户id和选中的商品应用set保护,因为购物车不要求先后顺序,且set构造可主动去重,
select_user_id:[sku_id1,sku_id3.....]
6、前期保护购物车数据时,2个表同时进行,例如删掉hash外面sku_id1的时候,selected外面的也要同时删掉。
7、在hash中每次增加商品时,先遍历购物车中的商品是否已有,如果已有,则累加count,如果没有再加新的。应用hincrby函数