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

用户历史浏览记录:
	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)

你可能感兴趣的:(python)