redis 有序集合(sorted set)实现排名

特性:元素不重复,分值可重复

假设有销售3人,张三、李四、王五。1月25号 分别销售额为0.01、0.02、0.03,1月26号 分别销售额为0.03、0.02、0.01

zincrby 20210125 0.01 张三

zincrby 20210125 0.02 李四

zincrby 20210125 0.03 王五

zincrby 20210126 0.03 张三

zincrby 20210126 0.02 李四

zincrby 20210126 0.01 王五

那么计算某一天的排名为:zrange 20210125 0 -1、zrevrange 20210125 0 -1

计算多天,如一周,一个月:ZUNIONSTORE outlast_week 2 20210124 20210125 WEIGHTS 1 1、zrevrange outlast_week 0 9 withscores、zrevrange outlast_week 0 -1

 

贴士:

案例中使用0.01等 float类型的数值进行zincrBy会有精度问题,如0.01+0.01=0.019999999999,实例操作中,应尽量避免double型数值操作,可将所有数值同时放大100倍进行相加减,最终再除以100得结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值