redis基础之有序集合应用

'''音乐播放排名'''
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

 

posted @ 2019-07-17 10:31  一如年少模样  阅读(371)  评论(0编辑  收藏  举报