用户浏览记录介绍
- 我们记录用户的最多五条 浏览历史商品记录,并呈现
- 使用redis 作为存储
redis 数据类型选择(文档)
- 需求分析
- 我们需要 保存每个用户五条浏览记录,且要知道该用户是谁
- 数据类型选择:
- 采用 list 类型实现
- 存储格式:history_user_id’ : [sku_id_1, sku_id_2, …]
redis存储逻辑
- 首先需要去重
- 加入已经存储了 [1,2], 此时再次插入2, 不能是【2,1, 2】,所以要使用去重
- 保存
- 截取list:
- 只有五个数据,每次都需要截取,超过长度5的部分就不需要了
- 管道执行,提高性能效率
# 保存用户浏览数据
redis_conn = get_redis_connection('history')
pl = redis_conn.pipeline()
user_id = request.user.id
# 先去重, 0 表示去除所有的相同元素
pl.lrem('history_%s' % user_id, 0, sku_id)
# 再存储
pl.lpush('history_%s' % user_id, sku_id)
# 最后截取
pl.ltrim('history_%s' % user_id, 0, 4)
# 执行管道
pl.execute()
这样就可以了。需要的时候只需要执行查询就可以了
读取数据命令
很简单,就是使用redis存储浏览记录。