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个商品的idsku_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)


原文地址:https://www.cnblogs.com/jingandyuer/p/11354663.html

时间: 2024-08-07 15:46:13

redis存储用户历史浏览记录的相关文章

Django之使用redis缓存session,历史浏览记录,首页数据实现性能优化

Redis缓存session 配置Django缓存数据到redis中 # diango的缓存配置 CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", # 用户的session信息,历史浏览记录存储在redis数据库9中 "LOCATION": "redis://127.0.0.1:6379/9", "OPTIONS

js操作Cookie,实现历史浏览记录

/** * history_teacher.jsp中的js,最近浏览名师 * @version: 1.0 * @author: mingming */ $(function(){ getHistory(); }); var historyCount=4; //保存历史记录个数 /** * 增加浏览历史记录 * @param id 编号 * @param name 姓名 * @param photo 照片 * @param grade 年级 * @param subject 科目 * @retur

destoon系统开发-最新利用浏览器的cookie 做历史浏览记录

  注意: 代码 放在要显示的为 (一般放在详情页),注意本教程不入库,直接利用浏览器的 cookie 缓存判断    <!--历史浏览记录 S--> <div class="column_box mt_10"> <div class="column_title">历史浏览记录</div> <div class="box_body_new"> <?php $MOD_name = &

js记录用户在网站的浏览记录和停留时间(2)

问题:上次的代码确实解决了一部分用户访问记录的收集,但是还是存在一个问题就是 我们网站的注册 都是新页面打开的,如果用户刚进入网站就点击注册(打开了新的页面) ,我代码里用到的 onbeforeunload 就无法将用户进入的页面存储到本地了,也就是导致 访问了网站 直接点击注册的用户 无法被记录.所以这次对数据的记录方式做了拆分. 这个是上一次文章的链接:http://weber.pub/js记录用户行为浏览记录和停留时间/163.html 思路 当用户进入网站,页面加载完成的时候执行 win

使用 Redis 缓存来实现用户最近浏览的商品列表

一.如何使用 Redis 来缓存来实现最近浏览的商品列表? 首先我们要确定一个两个点,最近浏览的商品肯定是一个存一个取的操作. 那么就可以确定以下几个问题: 最近浏览的记录肯定是要有失效时间的 这里可以使用缓存(Redis等),缓存可以设置失效时间(最大设置为一个月). 如果使用关系型数据库,还需要定时清楚,就很不符合实际需求. 最近浏览记录肯定是要有个数限制的,不可能记录所有的浏览记录 如果使用Redis来实现的话,Redis 中有 LTRM 来修建,以保证存储的浏览条数. 需要在哪里添加保存

cookie记录用户的浏览商品的路径

在电子商务的网站中,经常要记录用户的浏览路径,以判断用户到底对哪些商品感兴趣,或者哪些商品之间存在关联. 下面将使用cookie记录用户的浏览过的历史页面.该网站将每个页面的标题保存在该页面的$TITLE 变量中,用户每访问一次,就将新访问的标题添加到COOKie变量$_COOKIE["history"]值中. 随着访问页面的次数增多,该cookie变量中保存的含有页面标题的字符串会越来越长.将cookie变量切分成数组.然后输出数组元素的值就可以输出用户最近访问的页面的标题了 <

Java遇见HTML——JSP篇之商品浏览记录的实现

一.项目总体介绍 使用Cookie实现商品浏览记录. 要实现这个程序采取的是Model1(Jsp+JavaBean)架构实现,具体步骤: 首先要有个数据库,商品表,操作数据库的一个类DBHelper类 创建实体类(与数据库表一一对应) 创建业务逻辑类(DAO) 创建页面层 二.DBHelper类设计 1 package util; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 6 public class D

如何安全的存储用户的密码

大多数的web开发者都会遇到设计用户账号系统的需求.账号系统最重要的一个方面就是如何保护用户的密码.一些大公司的用户数据库泄露事件也时有发生,所以我们必须采取一些措施来保护用户的密码,即使网站被攻破的情况下也不会造成较大的危害.如果你还在存储用户密码的MD5,那可真的有点弱了.赶紧来看看这篇文章吧. 保护密码最好的的方式就是使用带盐的密码hash(salted password hashing).对密码进行hash操作是一件很简单的事情,但是很多人都犯了错.接下来我希望可以详细的阐述如何恰当的对

Redis 存储机制

Redis存储机制分成两种Snapshot和AOF.无论是那种机制,Redis都是将数据存储在内存中. Snapshot工作原理: 是将数据先存储在内存,然后当数据累计达到某些设定的伐值的时候,就会触发一次DUMP操作,将变化的数据一次性写入数据文件(RDB文件). AOF 工作原理: 是将数据也是先存在内存,但是在存储的时候会使用调用fsync来完成对本次写操作的日志记录,这个日志揭露文件其实是一个基于Redis网络交互协议的文本文件.AOF调用fsync也不是说全部都是无阻塞的,在某些系统上