卑微小吴励志写博客第22天。

这里补充一种set类型数据的应用场景

set类型的业务场景

黑白名单

Redis数据类型Sorted set

tips

redis可以应用于基于黑名单和白名单设定的服务控制。

sorted_set数据类型

新的需求:
数据排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式。
既能存储大量数据,又可以进行排序。

sorted_set存储形式

Redis数据类型Sorted set
在set数据类型的基础上,加上score值,可以让数据通过score来排序。

sorted_set基本操作

添加数据

  • zadd key member1 score1 [member2 score2]

获取全部数据

  • zrange key start stop [withscores]
  • zrevrange key start stop [withscores] 倒序排序

删除数据

  • zrem key member [member … ]

按条件获取数据

  • zrangebyscore key min max [withscore] [limit]
  • zrevrangebyscore key min max [withscore]

条件删除数据

  • zremrangebyrank key start stop 这一个删除有索引的概念
  • zremrangbyscore key min max

注意:

  • min和max限定了查询的条件。
  • start和stop用于限定查询的范围,作用于索引,表示开始索引和结束索引
  • offset和count用于限定查询范围,用于与于查询结果,表示开始位置和数据总量。

获取集合数据总量

  • zcard key
  • zcount key min max

集合交、并操作

  • zinterstore destination numkeys key [key …]
  • zunionstore destination numkeys key [key…]

sorted_set的扩展操作

业务场景

Redis数据类型Sorted set

业务分析

  • 这类榜单类的数据, 一般要包括排序。
  • 有些还要有第几名的分析。

解决方案

获取数据对应的索引(排名)

  • zrank key member
  • zrevrank key member

score值获取与修改

  • zscore key member
  • zincrby key increment member

tips

redis可以用于计数器组合排序功能对应的排名

sorted_set数据类型的注意事项

  • score数据的数据存储空间是64位,是有范围的,一般不会超。
  • score保存的数据也可以是小数,是一个双精度浮现小数,可能会丢失精度,一般不使用。
  • sorted_set的底层数据结构还是基于set的,因此数据不能重复,如果重复添加一个数据,score值会覆盖,取最后一次score值。

业务场景

Redis数据类型Sorted set

解决方案

Redis数据类型Sorted set
redis是可以拿到当前时间的

  • time

tips

redis可以用于定时任务顺序管理或任务过期管理。

业务场景

任务/消息权重设定应用
对于任务或者消息在队列中时,对于优先级较高的先处理,如何实现任务权重管理。

解决方案

利用score来记录权重即可解决。
Redis数据类型Sorted set

tips

redis可用于及时任务/消息队列执行管理。

今天的分享就到这里了,小伙伴们加油!

Redis数据类型Sorted set

相关文章: