django+redis的排行榜

利用了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]

  
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值