CentOS 初体验二十五:redis常用命令:sorted set

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/79289352
本文出自【赵彦军的博客】

sorted set

redis 有序集合(sorted set),redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

使用场景:

  • 微博热点话题
  • 游戏分数、积分排名榜

添加元素

  • zadd :添加元素到有序列表

格式:zadd 【scorekey】【score key】【score key】【..】

例子:添加3个元素到集合,a 70 分b 80 分c 90 分

zadd score1 70 a 80 b 90 c

获取元素

  • zscore:获取 keyscore

格式:zscore【scorekey】【key】

例子:获取 ascore

zscore score1 a
  • zrange : 获取集合元素

格式:zrange 【scorekey】【start】【end】

start: 元素开始的索引,一般从 0 开始
end: 元素结束的索引,-1 代表倒数第一个元素,也就是最后一个元素。

例子:获取 score1 集合所有的元素。

zrange score1 0 -1 

上面只是获取元素的 key 值,如果要 key 和 score 一起获取,需要加上 withscores 命令

//默认从小到大排序
zrange score1 0 -1 withscores

//从大到小排序
zrevrange score1 0 -1 withscores
  • zrangebyscore : 根据分数范围获取集合元素

格式:zrangebyscore 【scorekey】【start】【end】

start: 开始分数
end: 结束分数

例子:获取 score1 集合分数在 10–30 之间的元素

zrangebyscore score1 10 30 

扩展命令

//查找 score1 集合中分数在 10--200 之间的元素,在这些元素中,只取索引为 1 的元素往后数两个
zrangebyscore score1 10 200 withscores limit 1 2

格式:zrangebyscore key min max [withscore] [LIMIT offset count]

删除元素

  • del :获取集合

格式:del 【scorekey】

  • zrem :删除元素

格式:zrem 【scorekey】【key key key …】

例子:删除 a , b 的值

zrem score1 a b
  • zremrangebyrank :按照元素顺序删除元素

格式:zremrangebyrank 【scorekey】【start】【end】

start : 元素开始的索引
end: 元素结束的索引

例子:删除 score1 集合前 3 个元素

zremrangebyrank score1 0 2
  • zremrangebyscore :按照分数的范围删除元素

格式:zremrangebyscore 【scorekey】【start】【end】

start : 开始的分数
end: 结束的分数

例子:删除 score1 集合中 分数在 70--90 的元素

zremrangebyscore score1 70 90

其他命令

  • zcard :获取集合长度

格式:zcard 【scorekey】

例子:获取 score1 集合 的长度

 zcard score1
  • zincrby :给元素增加值

格式:zincrby 【scorekey】【score】【key】

例子: 给 d 元素值增加 14

zincrby score1 14 d
  • zcount :计算指定分数范围内元素的个数

格式:zcount 【scorekey】【startscore】【endscore】

startscore : 开始的分数
endscore: 结束的分数

例子: 计算分数在 50 到 100 之间的元素的个数

zcount score1 50 100 

个人微信号:zhaoyanjun125 , 欢迎关注

发布了301 篇原创文章 · 获赞 257 · 访问量 79万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章