redis存储用户历史浏览记录

Posted jingandyuer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis存储用户历史浏览记录相关的知识,希望对你有一定的参考价值。

1:什么时候需要添加浏览记录

访问商品详情页的时候

2:什么时候取出浏览记录

访问用户个人中心的时候

 

用户查看商品的历史浏览记录存成什么格式:

history_用户id:[商品id,商品id]

添加用户浏览记录:

# 添加用户的历史记录history_用户id:[商品id,商品id,商品id]
conn = get_redis_connection(‘default‘)
history_key = ‘history_%d‘ % user.id
# 用redis的lrem方法将最早的那一条浏览记录移除掉
conn.lrem(history_key, 0, goods_id)
# 把goods_id插入到列表的左侧
conn.lpush(history_key, goods_id)
# 只保存用户最新浏览的5条信息
conn.ltrim(history_key, 0, 4)

取出浏览记录:
# 获取用户的历史浏览记录
# 获取redis链接
conn = get_redis_connection(‘default‘)
history_key = ‘history_%d‘ % user.id
# 获取用户最新浏览的5个商品的id
sku_ids = conn.lrange(history_key, 0, 4) # [2,5,1,6,8]
# 从数据库查询用户浏览的商品的具体信息
# goods_list = GoodsSKU.objects.filter(id__in=sku_ids)

# 遍历获取用户浏览的历史商品信息
goods_li = []
for id in sku_ids:
goods = GoodsSKU.objects.get(id=id)
goods_li.append(goods)


 

以上是关于redis存储用户历史浏览记录的主要内容,如果未能解决你的问题,请参考以下文章

获取用户浏览历史记录(django_redis)

04 用户个人信息和二次开发django的文件存储系统

防止浏览器在历史记录中存储当前页面

恢复谷歌浏览器历史记录

如何在codeigniter中删除浏览器历史记录?

LeetCode Algorithm 1472. 设计浏览器历史记录