使用redis存储用户的浏览记录

该博客主要讲述使用Redis存储用户浏览记录。Redis是后端开发常用的数据库,利用其特性来存储用户浏览信息,有助于后续对用户行为的分析等信息技术相关操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用户历史浏览记录:
	1)、什么时候添加历史浏览记录:
		访问商品的详情页面的时候,添加历史浏览记录
	2)、什么时候获取历史浏览记录:
		访问用户中心个人信息页的时候获取历史浏览记录
	3)、历史浏览记录需要存储在哪里?
		使用redis数据库存储历史浏览记录
	4)、redis中存储历史浏览记录的格式?
		所有用户的历史浏览记录用一条数据保存:
			hash:
				history: user_id:'1,2,3'
		每个用户的历史浏览记录用一条数据保存:
			list:
				history_user_id:[1,2,3]
				添加历史浏览记录时,用户最新浏览的商品的id从列表左侧插入

	
	Python与redis进行交互:
		from redis import StrictRedis
		StrictRedis(host='localhost', port='6379', db=9)

	使用django-redis 进行交互:
		from django-redis import get_redis_connection
		con = get_redis_connection('default')
		# 此处假设每个用户的历史浏览记录使用一条数据保存的,那么在此处就是使用一下方法进行获取
		history_key = 'history_%d'%user.id
		# 获取用户最新浏览的商品的ID
		sku_ids = con.lrange(hisrtory_key, 0, 4)
		# 从数据库中查询用户浏览的商品的具体信息
		from models import GoodsSKU
		# goods_li = GoodsSKU.objects.filter(id__in=sku_ids)
		# 对查询出来的数据进行时间排序:
		goods_li = []
		for id in sku_ids:
			goods = GoodsSKU.objects.get(id=id)
			goods_li.append(goods)
		
	# 添加历史浏览记录的时候:首先判断商品时候已经存在列表中,如果存在,则将其移除
	  然后添加
		lrem()
		coon = get_redis_connection('default')
		history_key = 'history_%d'%user.id
		# 首先进行删除,如果有则删除,如果没有则什么都不做
		conn.lrem(history_key, 0, goods_id)
		conn.lpush(history_key, goods_id)
		# 是保存用户最新浏览的5条信息
		ltrim()
		conn.ltrim(history_key, 0, 4)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值