Redis数据类型 sorted_set

sorted_set类型

  • 新的存储需求:数据排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式
  • 需要的存储结构:新的存储模型,可以保存可排序的数据
  • sorted_set类型:在set的存储结构基础上添加可排序字段

image-20210730145729658

sorted_set 类型数据的基本操作

  • 添加数据
zadd key score1 member1 [score2 member2]
  • 获取全部数据
//升序排列
zrange key start stop [WITHSCORES]
//降序排列
zrevrange key start stop [WITHSCORES]
  • 删除数据
zrem key member [member ...]

image-20210730150638364

  • 按条件获取数据
zrangebyscore key min max [WITHSCORES] [LIMIT]
zrevrangebyscore key max min [WITHSCORES]

image-20210730152316338

  • 按条件删除数据
//根据索引删除
zremrangebyrank key start stop
//根据score删除
zremrangebyscore key min max

image-20210730152501249

image-20210730152600841

  • 获取集合数据总量
zcard key
zcount key min max

image-20210730152751239

  • 集合交、并操作
//numkeys表示要对几个集合操作,写多少后面就要接多少集合
zinterstore destination numkeys key [key ...]
zunionstore destination numkeys key [key ...]

image-20210730153146121

image-20210730153516721

sorted_set 类型数据的扩展操作

业务场景

各种需要排名的活动,比如投票等……

解决方案

  • 获取数据对应的索引(排名)
zrank key member
zrevrank key member

image-20210730154123856

  • score值获取与修改
zscore key member
zincrby key increment member

image-20210730154338687

sorted_set 类型数据操作的注意事项

  • score保存的数据存储空间是64位,如果是整数范围是-9007199254740992~9007199254740992
  • score保存的数据也可以是一个双精度的double值,基于双精度浮点数的特征,可能会丢失精度,使用时候要慎重
  • sorted_set 底层存储还是基于set结构的,因此数据不能重复,如果重复添加相同的数据,score值将被反复覆盖,保留最后一次修改的结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值