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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章