利用了redis中的有序集合
可以将添加进来的key:value形式的数据 根据value来进行排序 value得是int
import redis
host = '127.0.0.1'
port = 6379
r = redis.Redis(host=host,port=port)
r.zadd('z',{'冰箱':20})
r.zadd('z',{'手机':30})
print(r.zrange('m',0,10,desc=True,withscores=True)) #desc=True 倒序
创建好接口后直接用zincrby()方法来将其中的某个元素进行相应的操作
zincrby(‘有序集合’,增减数量,增减的key)
class GoodsClick(APIView):
def get(self,request):
# 接收参数
gid = request.GET.get('gid',None)
# 修改商品点击数
r.zincrby("good_rank",1,int(gid))
return Response({"message":"访问了"})
可以构造一个通用可以复用的方法
方法内部实现了对数据的进一步封装
{商品点击量:商品}
# 获取n名数据
def get_top_n(num):
# 获取redis排行榜
goods_click = r.zrange('good_rank',0,-1,desc=True,withscores=True)[:num]