用户浏览历史记录
保存浏览历史
用户在访问每个商品详情页面时,都要记录浏览历史记录
历史记录中只需要保存多个商品的 sku_id 即可,而且需要保持添加 sku_id 的顺序,采用 redis 中列表来保存
根据接口,前端每次访问详情页时会带上当前商品的 sku_id 来访问后端 POST
后端写序列化器和视图,认证权限,用户必须登录
判断 sku_id 是否存在,调用 create 方法进行创建
取出商品 id 和 用户 id,取到对应的 redis 数据库对象
在这里要对数据库进行多次操作,为了提高效率,使用 redis 中 pipeline 方法将所有操作 redis 的语句集中在一起,最后只需要访问一次 redis 数据库即可
先移除已经存在的本商品浏览记录, 使用 list 的命令该命令可以根据传入的 count 和 value 自动移除和 value 值相同的数据
添加新的浏览记录,最新的数据要保存在前面,所以在列表中要从左边插入数据,使用命令可以将数据从左边插入
历史记录肯定不是展示所有,这里设置只展示 5 条,使用 list 的命令可以做到这样
LTRIM key start stop
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
执行命令 pl.execute() ,将对 redis 数据库的操作进行执行,保存成功
查看历史浏览记录
这是在用户个人中心中显示的
用户进入个人中心时,添加访问浏览历史记录的接口 GET
后端编写 get 方法,用来返回数据
取出当前 user_id
链接 redis 数据库,根据 user_id 查询所有的浏览历史记录,使用命令
LRANGE key start stop
返回列表中指定区间内的元素,区间以偏移量和指定
遍历取得每个商品对象,将数据序列化然后返回,前端进行展示
- End -
领取专属 10元无门槛券
私享最新 技术干货