首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Redis系列-数据类型sorted_set

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

需要的存储结构:新的存储模型,可以保存可排序的数据

sorted_set类型:在set的存储结构基础上添加可排序字段

sorted_set 类型数据的基本操作

添加数据

zaddkey score1 member1 [score2 member2]

获取全部数据

zrangekey start stop [WITHSCORES] 正向排序

zrevrangekey start stop [WITHSCORES] 反向排序

删除数据

zremkey member [member ...]

按条件获取数据

zrangebyscorekey min max [WITHSCORES] [LIMIT]

zrevrangebyscorekey max min [WITHSCORES]

条件删除数据

zremrangebyrankkey start stop

zremrangebyscorekey min max

注意:

min与max用于限定搜索查询的条件

start与stop用于限定查询范围,作用于索引,表示开始和结束索引

offset与count用于限定查询范围,作用于查询结果,表示开始位置和数据总量

获取集合数据总量

zcardkey 查询一共有多少数据

zcountkey min max 查询在这个score范围内一共有多少个数据

集合交、并操作 还可以对合集里面的数据进行最大、最小,平均值。

zinterstoredestination numkeys key [key ...]

zunionstoredestination numkeys key [key ...]

业务场景

票选广东十大杰出青年,各类综艺选秀海选投票

各类资源网站TOP10(电影,歌曲,文档,电商,游戏等)

聊天室活跃度统计

游戏好友亲密度

解决:

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

zrankkey member

zrevrankkey member

score值获取与修改

zscorekey member

zincrbykey increment member

使用:

使用zrankkey member可以获取到前key中某个member的排名。在使用zscore key member获取其score的值得知其投票或者人气、点赞的值。如果后续还有点赞则使用zincrbykey increment member 对其增加相应的数量即可。

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

score保存的数据存储空间是64位,如果是整数范围是-9007199254740992~9007199254740992

score保存的数据也可以是一个双精度的double值,基于双精度浮点数的特征,可能会丢失精度,使用时候要慎重

sorted_set 底层存储还是基于set结构的,因此数据不能重复,如果重复添加相同的数据,score值将被反复覆盖,保留最后一次修改的结果。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201123A0HTV000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券