Redis學習第六課:Redis ZSet類型及操做

 

Sorted set是set的一個升級版本,它在set的基礎上增長了一個順序屬性,這一屬性在添加修改元素時候能夠指定,每次指定後,zset會自動從新按新的值調整順序。能夠理解爲有兩列字段的數據表,一列存value,一列存順序編號。操做中key理解爲zset的名字。spa

有序集合Zset的操做:排序

zadd:向名稱爲key的zset中添加元素member,score用於排序。若是該元素存在,則更新其順序。(用法:zadd 有序集合 順序編號 元素值)索引

127.0.0.1:6379> zadd zset1 1 two
(integer) 1
127.0.0.1:6379> zadd zset1 2 one
(integer) 1
127.0.0.1:6379> zadd zset1 3 seven
(integer) 1rem

127.0.0.1:6379> zrange zset1 0 -1
1) "two"
2) "one"
3) "seven"
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "one"
4) "2"
5) "seven"
6) "2"it

zrem:刪除名稱爲key的zset中的元素。(用法:zrem 有序集合 要刪除的元素值)基礎

127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "one"
4) "2"
5) "seven"
6) "2"
127.0.0.1:6379> zrem zset1 one
(integer) 1
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "seven"
4) "2"ember

zincrby:若是在名稱爲key的zset中已經存在元素member,則該元素的score增長increment,不然向該集合中添加該元素,其score的值爲increment.即對元素的順序號進行增長或減小操做。(用法:zincrby 有序集合 increment 指定的元素值)數據

127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "seven"
4) "2"
127.0.0.1:6379> zincrby zset1 5 seven
"7"
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "seven"
4) "7"集合

zrank:返回名稱爲key的member元素的排名(按score從小到大排序)即下標。(用法:zrank 有序集合 指定的元素值),返回值爲指定的元素值的索引下標號。升級

127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "seven"
4) "7"
127.0.0.1:6379> zrank zset1 seven
(integer) 1

zrevrank:返回名稱爲key的member元素的排名(按score從大到小排序)即下標。(用法:zrank 有序集合 指定的元素值)

127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "seven"
4) "7"
127.0.0.1:6379> zrevrank zset1 seven
(integer) 0

zrange:顯示集合中指定下標的元素值(按score從小到大排序)。若是須要顯示元素的順序編號,帶上withscores。(用法:zrange 有序集合  下標索引1 下標索引2 withscores)

127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "five"
4) "2"
5) "one"
6) "3"
7) "seven"
8) "7"

zrevrange:顯示集合中指定下標的元素值(按score從大到小排序)。若是須要顯示元素的順序編號,帶上withscores。(用法:zrevrange 有序集合  下標索引1 下標索引2 withscores)

127.0.0.1:6379> zrevrange zset1 0 -1 withscores
1) "seven"
2) "7"
3) "one"
4) "3"
5) "five"
6) "2"
7) "two"
8) "1"

zrangebyscore:顯示指定範圍順序編號的元素(按score從小到大排序)。(用法:zrangebyscore 有序集合 順序編號1 順序編號2 withscores)

127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "five"
4) "2"
5) "one"
6) "3"
7) "seven"
8) "7"
127.0.0.1:6379> zrangebyscore zset1 2 7 withscores
1) "five"
2) "2"
3) "one"
4) "3"
5) "seven"
6) "7"

zcount: 返回集合中score在給定區間的數量。(用法:zcount 有序集合 順序編號1 順序編號2) 

127.0.0.1:6379> zcount zset1 2 7
(integer) 3

zcard:返回集合中元素個數。(用法:zcard 有序集合)

 127.0.0.1:6379> zrange zset1 0 -1
1) "two"
2) "five"
3) "one"
4) "seven"
127.0.0.1:6379> zcard zset1
(integer) 4

zremrangebyrank:刪除集合中排名在給定區間的元素。(按索引下標刪除)(用法:zremrangebyrank 有序集合 索引編號1 索引編號2) 

127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "five"
4) "2"
5) "one"
6) "3"
7) "seven"
8) "7"
127.0.0.1:6379> zremrangebyrank zset1 3 3
(integer) 1
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "five"
4) "2"
5) "one"
6) "3"

zremrangebyscore:刪除集合中score在給定區間的元素(按順序score值來刪除)。(用法:zremrangebyscore 有序集合 順序編號1 順序編號2)

127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "five"
4) "2"
5) "one"
6) "3"
7) "seven"
8) "7"
127.0.0.1:6379> zremrangebyscore zset1 5 7(integer) 1127.0.0.1:6379> zrange zset1 0 -1 withscores1) "two"2) "1"3) "five"4) "2"5) "one"6) "3"

相關文章
相關標籤/搜索