Redis 基本資料型別之 Zset 型別

2021-10-14 13:02:26 字數 1774 閱讀 9953

基本指令

# zset 相對於 set 多了乙個 score 字段,是乙個有序的集合,其成員是唯一的,但 score 可以重複

127.0.0.1:6379> zadd myzset 1 one # 向 zset 新增乙個值

(integer) 1

127.0.0.1:6379> zadd myzset 2 two

(integer) 1

127.0.0.1:6379> zadd myzset 4 four 3 three # 向 zset 新增多個值

(integer) 2

127.0.0.1:6379> zrange myzset 0 -1

1)"one"

2)"two"

3)"three"

4)"four"

# 如何排序

127.0.0.1:6379> zadd salary 2500 zhangsan

(integer) 1

127.0.0.1:6379> zadd salary 2000 lisi

(integer) 1

127.0.0.1:6379> zadd salary 3000 wangwu

(integer) 1

127.0.0.1:6379> zrangebyscore salary -inf +inf # 根據 score 進行排序,從負無窮到正無窮的閉區間,這裡注意只能從小到大

1)"lisi"

2)"zhangsan"

3)"wangwu"

127.0.0.1:6379> zrangebyscore salary -inf 2500 withscores # 根據 score 進行排序,從負無窮到2500的閉區間,並且展示分數

1)"lisi"

2)"2000"

3)"zhangsan"

4)"2500"

127.0.0.1:6379> zrevrangebyscore salary +inf -inf withscores # 倒序排序,引數和上面指令相同,只是最大值最小值反一下

1)"wangwu"

2)"3000"

3)"zhangsan"

4)"2500"

5)"lisi"

6)"2000"

# 刪除元素

127.0.0.1:6379> zrem salary zhangsan # 刪除集合中的元素

(integer) 1

127.0.0.1:6379> zrange salary 0 -1

1)"lisi"

2)"wangwu"

127.0.0.1:6379> zcard salary # 檢視集合中元素的數量

(integer) 2

# 獲取指定區間的元素數量

127.0.0.1:6379> zrange myzset 0 -1 withscores

1)"one"

2)"1"

3)"two"

4)"2"

5)"three"

6)"3"

7)"four"

8)"4"

127.0.0.1:6379> zcount myzset 1 3 # 獲取 score 為 1 到 3 閉區間的元素數量

(integer) 3

應用場景

根據時間排序的新聞列表

各種排行榜

帶權重的佇列,便於先執行重要的任務

Redis五種基本資料型別及用法之Zset

zset可以理解為有序的set,根據給定的score排序。1.zadd 將指定的元素新增到有序集合中。2.zscore 返回 member 的 score 值。3.zrange 返回集合中的一組元素,這裡可以返回score指定範圍內的元素,當然也將score一起返回 withscores 4.zre...

redis基本資料型別

redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 string key value型 0.1 6379 set name haha ok127.0 0.1 6379 get name haha hash 是乙個鍵...

Redis基本資料型別

redis是乙個key value形式的nosql儲存系統,redis的所有操作都是原子性的。string是二進位制安全的,可以儲存檔案等,也可以利用incr用作計數統計。set key value get key incr key list型別是乙個雙向鍊錶結構,亦可實現乙個佇列。lpush ke...