redis基础之有序集合应用

本文介绍如何使用Redis实现音乐播放量及商品销售排行榜的功能。通过ZADD命令增加元素并设置分数,利用ZINCRBY更新特定元素的分数,最终借助ZREVRANGE获取排行数据。示例包括音乐播放量排行与京东手机销售排行。

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

'''音乐播放排名'''
import redis

r = redis.Redis(host='127.0.0.1', port=6379, password='123456', db=0)
r.zadd('ranking', {'song1': 1, 'song2': 1, 'song3': 1, 'song4': 1})
r.zadd('ranking', {'song5': 1, 'song6': 1, 'song7': 1})
r.zadd('ranking', {'song8': 1, 'song9': 1})
r.zincrby('ranking', 50, 'song3')
r.zincrby('ranking', 60, 'song5')
r.zincrby('ranking', 80, 'song7')
res = r.zrevrange('ranking', 0, 2, withscores=True)
i = 1
for j in res:
    print('第{}名是:{} 播放量:{}次'.format(i, j[0].decode(), int(j[1])))
    i += 1


输出结果:
第1名是:song7 播放量:81次
第2名是:song5 播放量:61次
第3名是:song3 播放量:51次

 

 

'''京东商品畅销榜'''
import redis

r = redis.Redis(host='127.0.0.1', port=6379, db=0, password=123456)
r.flushdb()
day01_dict = {'huawei': 5000, 'oppo': 4000, 'iphone': 3000}
day02_dict = {'huawei': 5200, 'oppo': 4300, 'iphone': 3230}
day03_dict = {'huawei': 5500, 'oppo': 4660, 'iphone': 3580}
r.zadd('mobile_day01', day01_dict)
r.zadd('mobile_day02', day02_dict)
r.zadd('mobile_day03', day03_dict)
r.zunionstore('mobile_day01:03', ('mobile_day01', 'mobile_day02', 'mobile_day03'), aggregate='max')
res = r.zrevrange('mobile_day01:03', 0, -1, withscores=True)
print(res)
i = 1
for r in res:
    print('第{}名:{}'.format(i, r[0].decode()))
    i += 1


输出结果:
[(b'huawei', 5500.0), (b'oppo', 4660.0), (b'iphone', 3580.0)]
第1名:huawei
第2名:oppo
第3名:iphone

 

转载于:https://www.cnblogs.com/yuxiangyang/p/11199377.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值