Redis五大資料型別之 Zset(有序集合)

HuDu發表於2020-09-11

在set的基礎上,增加了一個值,set k1 v1,zset k1 score1 v1

127.0.0.1:6379[1]> ZADD myset 1 one    # 新增一個值
(integer) 1
127.0.0.1:6379[1]> ZADD myset 2 two 3 three    # 新增多個值
(integer) 2
127.0.0.1:6379[1]> ZRANGE myset 0 -1
1) "one"
2) "two"
3) "three"
127.0.0.1:6379[1]> ZADD salary 2500 tom    # 新增三個使用者
(integer) 1
127.0.0.1:6379[1]> ZADD salary 5000 lucy
(integer) 1
127.0.0.1:6379[1]> ZADD salary 2000 alex
(integer) 1
127.0.0.1:6379[1]> ZRANGEBYSCORE salary -inf +inf    # 顯示所有使用者 從下到大
1) "alex"
2) "tom"
3) "lucy"
127.0.0.1:6379[1]> ZRANGEBYSCORE salary -inf +inf withscores    # 顯示所有使用者 從下到大 並且附帶成績
1) "alex"
2) "2000"
3) "tom"
4) "2500"
5) "lucy"
6) "5000"
127.0.0.1:6379[1]> ZRANGEBYSCORE salary -inf 2500 withscores
1) "alex"
2) "2000"
3) "tom"
4) "2500"
127.0.0.1:6379[1]> ZREVRANGEBYSCORE salary +inf -inf withscores    # 顯示工資小於等於2500的員工附帶成績,並且降序排序
1) "lucy"
2) "5000"
3) "tom"
4) "2500"
5) "alex"
6) "2000"
127.0.0.1:6379[1]> ZREVRANGEBYSCORE salary +inf (2500 withscores    # 顯示工資小於2500的員工附帶成績,並且降序排序
1) "lucy"
2) "5000"
127.0.0.1:6379[1]> ZRANGE salary 0 -1
1) "alex"
2) "tom"
3) "lucy"
127.0.0.1:6379[1]> ZREM salary lucy    # 移除有序集合中的指定元素
(integer) 1
127.0.0.1:6379[1]> ZRANGE salary 0 -1
1) "alex"
2) "tom"
127.0.0.1:6379[1]> ZCARD salary    # 獲取有序集合個數
(integer) 2
127.0.0.1:6379[1]> FLUSHDB
OK
127.0.0.1:6379[1]> zadd myset 1 1 2 2 3 3
(integer) 3
127.0.0.1:6379[1]> ZCOUNT myset 1 2    # 獲取有序集合區間內元素的個數
(integer) 2

案例思路:
set排序,儲存班級成績表,工資表排序
普通訊息:1,重要訊息:2,帶權重進行判斷
排行榜應用,取Top N

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章