Redis學習筆記三:redis的數據類型講解及命令實例演示

一.Redis的數據類型

1.String類型及操做

        String是最簡單的類型,一個key對應一個value,string類型是二進制安全的。Redis的string能夠包含任何數據,好比jpg圖片或者序列化的對象。mysql

        Set方法:設置key對應的值爲string類型的valueredis

        例如:咱們添加一個name=lili的鍵值對sql

redis 127.0.0.1:6379> set name lili  
OK 

 

        Setnx:設置key對應的值爲string類型的value,若是key已經存在,返回0,nx是not exist的意思。安全

        例如:咱們添加一個name=lili_new的鍵值對。bash

redis 127.0.0.1:6379> get name  
"lili"  
redis 127.0.0.1:6379> setnx name lili_new  
(integer) 0  
redis 127.0.0.1:6379> get name  
"lili"  
redis 127.0.0.1:6379> setnx age 20  
(integer) 1  

        Setex:設置key對應的值爲string類型的value,並指定此鍵值對應的有效期。app

        例如:咱們添加一個haircolor=red的鍵值對,並指定有效期爲10秒測試

redis 127.0.0.1:6379> setex haircolor 10 red  
OK  
redis 127.0.0.1:6379> get haircolor  
"red"  
redis 127.0.0.1:6379> get haircolor  
(nil)  

        nil:表示空spa

        Setrange:設置指定key的value值的子字符串.net

        例如:咱們但願將lili的126郵箱替換爲gmail郵箱code

redis 127.0.0.1:6379> get name  
"lili@126.com"  
redis 127.0.0.1:6379> setrange name 6 gmail.com  
(integer) 14  
redis 127.0.0.1:6379> get name  
"lili@gmail.com"  
    

redis 127.0.0.1:6379> set email lijie@lampbrother.net  
OK  
redis 127.0.0.1:6379> get email  
"lijie@lampbrother.net"  
redis 127.0.0.1:6379> setrange email 6-li-jie.me  
(integer) 21  
redis 127.0.0.1:6379> get email  
"lijie@li-jie.meer.net" 

        mset:一次設置多個key的值,成功返回ok表示全部的值都設置了,失敗返回0表示沒有任何值被設置。

redis 127.0.0.1:6379> mset key1 lijie1 key2 lijie2  
OK  
redis 127.0.0.1:6379> get key1  
"lijie1"  
redis 127.0.0.1:6379> get key2  
"lijie2"  

        msetnx:一次設置多個key的值,成功返回ok表示全部的值都設置了,失敗返回0表示沒有任何值被設置,可是不會覆蓋已經存在的key。

1.  redis 127.0.0.1:6379> msetnx key3 lijie3 key2 30  
2.  (integer) 0  
3.  redis 127.0.0.1:6379> get key3  
4.  (nil)  
5.  redis 127.0.0.1:6379> msetnx key3 lijie3 key4 30  
6.  (integer) 1  
7.  redis 127.0.0.1:6379> get key3  
8.  "lijie3"  
9.  redis 127.0.0.1:6379> get key4  
10. "30"  

        get:獲取key對應的string值,若是key不存在返回nil。

        getset:設置key的值,並返回key的舊值。

1.  redis 127.0.0.1:6379> getset key4 40  
2.  "30"  
3.  redis 127.0.0.1:6379> get key4  
4.  "40"  

        getrange:獲取key的value值的子字符串。

1.  redis 127.0.0.1:6379> get email  
2.  "lijie@li-jie.meer.net"  
3.  redis 127.0.0.1:6379> getrange email 0 4  
4.  "lijie"  

        mget:一次獲取多個key的值,若是對應key不存在則對應返回nil。

1.  redis 127.0.0.1:6379> mget key1 key2 key3  
2.  1) lijie1  
3.  2) lijie2  
4.  3) lijie3  

        incr:對key的值作加加操做,並返回新的值。

1.  redis 127.0.0.1:6379> incr key4  
2.  (integer) 41  
3.  redis 127.0.0.1:6379> incr key4  
4.  (integer) 42  
5.  redis 127.0.0.1:6379> get key4  
6.  "42"  
7.    
8.  redis 127.0.0.1:6379> incr key7  
9.  (integer) 1  
10. redis 127.0.0.1:6379> incr key7  
11. (integer) 2  
12. redis 127.0.0.1:6379> get key7  
13. "2"  

        incrby:同incr相似,加指定值,key不存在時候會設置key,並認爲原來的value是0。

1.  redis 127.0.0.1:6379> incrby key4 5  
2.  (integer) 47  
3.  redis 127.0.0.1:6379> get key4  
4.  "47"  
5.  redis 127.0.0.1:6379> incrby key4 -5  
6.  (integer) 42  
7.  redis 127.0.0.1:6379> get key4  
8.  "42"  

        decr:對key的值作減減操做。

        decrby:同decr相似,減指定值。

1.  redis 127.0.0.1:6379> get key6  
2.  "39"  
3.  redis 127.0.0.1:6379> decr key6  
4.  (integer) 38  
5.  redis 127.0.0.1:6379> decrby key6 -3  
6.  (integer) 41  
7.  redis 127.0.0.1:6379> decrby key6 3  
8.  (integer) 38  

        append:給指定key的字符串追加value,返回新字符串值的長度。

1.  redis 127.0.0.1:6379> get name  
2.  "test" 
3.  redis 127.0.0.1:6379> append name .net  
4.  (integer) 8  
5.  redis 127.0.0.1:6379> get name  
6.  "test.net"  

        strlen:取指定key的value值的長度。

1.  redis 127.0.0.1:6379> strlen name  
2.  (integer) 8  

2.hash類型及操做

        Redis hash是一個string類型的field和value的映射表。它的添加、刪除操做都是0(1)(平均)。hash特別適合用於存儲對象。相較於將對象的每一個字段存成單個string類型。將一個對象存儲在hash類型中會佔用更少的內存,而且能夠更方便的存取整個對象。

        hset:設置hash field爲指定值,若是key不存在,則先建立。

1.  redis 127.0.0.1:6379> hset user:001 name lijie  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> hget user:001 name  
4.  "lijie" 

        hsetnx:設置hash field爲指定值,若是key不存在,則先建立。若是存在返回0。

1.  redis 127.0.0.1:6379> hsetnx user:002 name lamp  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> hget user:002 name  
4.  "lamp"  
5.  redis 127.0.0.1:6379> hsetnx user:002 name lampbrother  
6.  (integer) 0 
7.  redis 127.0.0.1:6379> hget user:002 name  
8.  "lamp"  

        hmset:同時設置hash的多個field。

1.  redis 127.0.0.1:6379> hmset user:003 name lijie age 20 sex 1  
2.  OK  
3.  redis 127.0.0.1:6379> hget user:003 name  
4.  "lijie"  
5.  redis 127.0.0.1:6379> hget user:003 age  
6.  "20"  
7.  redis 127.0.0.1:6379> hget user:003 sex  
8.  "1"  

        hget:獲取指定的hash field。

        hmget:獲取所有指定的hash field。

1.  redis 127.0.0.1:6379> hmget user:003 name age sex  
2.  1) "lijie"  
3.  2) "20"  
4.  3) "1"  

        hincrby:指定的hash field加上給定值。

1.  redis 127.0.0.1:6379> hincrby user:003 age 5  
2.  (integer) 25  
3.  redis 127.0.0.1:6379> hget user:003 age  
4.  "25"  

        hexists:測試指定field是否存在。

1.  redis 127.0.0.1:6379> hexists user:003 age  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> hexists user:001 sex  
4.  (ingeger) 0  

        hlen:返回指定hash的field數量

1.  redis 127.0.0.1:6379> hlen user:001  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> hlen user:003  
4.  (integer) 3  

        hdel:刪除指定hash的field

1.  redis 127.0.0.1:6379> hget user:003 age  
2.  "25"  
3.  redis 127.0.0.1:6379> hdel user:003 age  
4.  (integer) 1  
5.  redis 127.0.0.1:6379> hget user:003 age  
6.  (nil)  

        hkeys:返回hash的全部field

1.  redis 127.0.0.1:6379> hkeys user:001  
2.  1) "name"  
3.  redis 127.0.0.1:6379> hkeys user:003  
4.  1) "name"  
5.  2) "sex"  

        hvals:返回hash的全部value

1.  redis 127.0.0.1:6379> hvals user:003  
2.  1) "lijie"  
3.  2) "1" 

        hgetall:獲取某個hash中所有的field及value

1.  redis 127.0.0.1:6379> hgetall user:003  
2.  1) "name"  
3.  2) "lijie"  
4.  3) "sex"  
5.  4) "1"  

3.list類型及操做

        List是一個鏈表結構,主要功能是push、pop、獲取一個範圍的全部值等等,操做key理解爲鏈表的名字。Redis的list類型其實就是一個每一個子元素都是string類型的雙向鏈表。咱們能夠經過push、pop操做從鏈表的頭部或者尾部添加刪除元素,這樣list既能夠做爲棧,又能夠做爲隊列。

        lpush:在key對應list的頭部添加字符串元素。

1.  redis 127.0.0.1:6379> lpush mylist "world"  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> lpush mylist "hello"  
4.  (integer) 2  
5.  redis 127.0.0.1:6379> lrange mylist 0 -1  
6.  1) "hello"  
7.  2) "world" 

        0表明頭部第一個元素,-1表明尾部第一個元素。lrange mylist 0 -1表示從list中頭第一個元素一直到尾第一個元素依次取出來,即第一個元素取到最後一個元素。

        rpush:在key對應list的尾部添加字符串元素。

1.  redis 127.0.0.1:6379> rpush mylist2 "world"  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> rpush mylist2 "hello"  
4.  (integer) 2  
5.  redis 127.0.0.1:6379> lrange mylist2 0 -1  
6.  1) "world"  
7.  2) "hello"  

        linsert:在key對應list的特定位置前或後添加字符串

1.  redis 127.0.0.1:6379> rpush mylist3 "world"  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> linsert mylist3 before "world "hello"  
4.  (integer) 2  
5.  redis 127.0.0.1:6379> lrange mylist3 0 -1  
6.  1) "hello"  
7.  2) "world"  

        lset:設置list中指定下標的元素值

1.  redis 127.0.0.1:6379> rpush mylist4 "hello"  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> lset mylist4 0 "world"  
4.  OK  
5.  redis 127.0.0.1:6379> lrange mylist4 0 -1  
6.  1) "world"

        lrem:從key對應list中刪除n個和value相同的元素(n<0從尾刪除,n=0所有刪除)。

1.  redis 127.0.0.1:6379> rpush mylist5 "hello"  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> rpush mylist5 "hello"  
4.  (integer) 2  
5.  redis 127.0.0.1:6379> lrem mylist5 1 "hello"  //從mylist5中刪除1個和hello相同的元素  
6.  (integer) 1  //表明刪除元素的個數 

        ltrim:保留指定key的值範圍內的數據

1.  redis 127.0.0.1:6379> rpush mylist8 "one"  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> rpush mylist8 "two"  
4.  (integer) 2  
5.  redis 127.0.0.1:6379> ltrim mylist8 1 -1  
6.  (integer) 1  
7.  redis 127.0.0.1:6379> lrange mylist8 0 -1  
8.  1) "two"  

        lpop:從list的頭部刪除元素,並返回刪除元素

1.  redis 127.0.0.1:6379> lrange mylist 0 -1  
2.  1) "hello"  
3.  2) "world"  
4.  redis 127.0.0.1:6379> lpop mylist  
5.  "hello"  
6.  redis 127.0.0.1:6379> lrange mylist 0 -1  
7.  1) "world"  

        rpop:從list的尾部刪除元素,並返回刪除元素

1.  redis 127.0.0.1:6379> lrange mylist2 0 -1  
2.  1) "hello"  
3.  2) "world"  
4.  redis 127.0.0.1:6379> rpop mylist2  
5.  "world"  
6.  redis 127.0.0.1:6379> lrange mylist2 0 -1  
7.  1) "hello"  

        lists類型

        rpoplpush:從第一個list的尾部移除元素並添加到第二個list的頭部。

1.  redis 127.0.0.1:6379> lrange mylist5 0 -1  
2.  1) "three"  
3.  2) "hello"  
4.  redis 127.0.0.1:6379> lrange mylist6 0 -1  
5.  1) "hello"  
6.  2) "foo"  
7.  redis 127.0.0.1:6379> rpoplpush mylist5 mylist6  
8.  "hello"  
9.  redis 127.0.0.1:6379> lrange mylist5 0 -1  
10. 1) "three"  
11. redis 127.0.0.1:6379> lrange mylist6 0 -1  
12. 1) "hello"  
13. 2) "hello"  
14. 3) "foo"  

        lindex:返回名稱爲key的list中index位置的元素。

1.  redis 127.0.0.1:6379> lrange mylist5 0 -1  
2.  1) "three"  
3.  2) "foo"  
4.  redis 127.0.0.1:6379> lindex mylist5 0  
5.  "three"  
6.  redis 127.0.0.1:6379> lindex mylist5 1  
7.  "foo"  

        llen:返回key對應list的長度

1.  redis 127.0.0.1:6379> lrange mylist6 0 -1  
2.  1) "hello"  
3.  2) "hello"  
4.  3) "foo"  
5.  redis 127.0.0.1:6379> llen mylist6  
6.  (integer) 3 

 

4.set類型及操做

        Set是集合,它是string類型的無序集合。set是經過hash table實現的,添加、刪除和查找的複雜度都是O(1)。對集合咱們能夠取並集、交集、差集。經過這些操做咱們能夠實現sns中的好友推薦和blog的tag功能。

        sadd:向名稱爲key的set中添加元素。

1.  redis 127.0.0.1:6379> sadd myset "hello"  
2.  (integer) 1  //表示添加成功  
3.  redis 127.0.0.1:6379> sadd myset "world"  
4.  (integer) 1  //表示添加成功  
5.  redis 127.0.0.1:6379> sadd myset "world"  
6.  (integer) 0  //表示添加不成功  
7.  redis 127.0.0.1:6379> smembers myset  
8.  1) "world"  
9.  2) "hello" 

        srem:刪除名稱爲key的set中的元素。

1.  redis 127.0.0.1:6379> sadd myset2 one  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> sadd myset2 two  
4.  (integer) 1  
5.  redis 127.0.0.1:6379> sadd myset2 three  
6.  (integer) 1  
7.  redis 127.0.0.1:6379> smembers myset2  
8.  1) "three"  
9.  2) "two"  
10. 3) "one"  
11. redis 127.0.0.1:6379> srem myset2 two  
12. (integer) 1  
13. redis 127.0.0.1:6379> srem myset2 two  
14. (integer) 0  
15. redis 127.0.0.1:6379> smembers myset2  
16. 1) "three"  
17. 2) "one" 

        spop:隨機返回並刪除名稱爲key的set中一個元素。

1.  redis 127.0.0.1:6379> sadd myset3 one  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> sadd myset3 two  
4.  (integer) 1  
5.  redis 127.0.0.1:6379> sadd myset3 three  
6.  (integer) 1  
7.  redis 127.0.0.1:6379> sadd myset3 four  
8.  (integer) 1  
9.  redis 127.0.0.1:6379> sadd myset3 five  
10. (integer) 1  
11. redis 127.0.0.1:6379> smembers myset3  
12. 1) "four"  
13. 2) "three"  
14. 3) "two"  
15. 4) "one"  
16. 5) "five"  
17. redis 127.0.0.1:6379> spop myset3  
18. "one"  
19. redis 127.0.0.1:6379> spop myset3  
20. "four"  
21. redis 127.0.0.1:6379> spop myset3  
22. "three"  
23. redis 127.0.0.1:6379> smembers myset3  
24. 1) "two"  
25. 2) "five" 

        sdiff:返回全部給定key與第一個key的差集。

1.  redis 127.0.0.1:6379> smembers myset2  
2.  1) "three"  
3.  2) "two"  
4.  redis 127.0.0.1:6379> smembers myset3  
5.  1) "two"  
6.  2) "one"  
7.  redis 127.0.0.1:6379> sdiff myset2 myset3  
8.  1) "three"  

        sdiffstore:返回全部給定key與第一個key的差集,並將結果存爲另外一個key。

1.  redis 127.0.0.1:6379> smembers myset2  
2.  1) "three"  
3.  2) "two"  
4.  redis 127.0.0.1:6379> smembers myset3  
5.  1) "two"  
6.  2) "one"  
7.  redis 127.0.0.1:6379> sdiffstore myset4 myset2 myset3  
8.  (integer) 1  
9.  redis 127.0.0.1:6379> smembers myset4  
10. 1) "three" 

        sinter:返回全部給定key的交集。

1.  redis 127.0.0.1:6379> smembers myset2  
2.  1) "three"  
3.  2) "two"  
4.  redis 127.0.0.1:6379> smembers myset3  
5.  1) "two"  
6.  2) "one"  
7.  redis 127.0.0.1:6379> sinter myset2 myset3  
8.  1) "two"  

        sinterstore:返回全部給定key的交集,並將結果存爲另外一個key。

1.  redis 127.0.0.1:6379> smembers myset2  
2.  1) "three"  
3.  2) "two"  
4.  redis 127.0.0.1:6379> smembers myset3  
5.  1) "two"  
6.  2) "one"  
7.  redis 127.0.0.1:6379> sinterstore myset6 myset2 myset3  
8.  (integer) 1  
9.  redis 127.0.0.1:6379> smembers myset6  
10. 1) "two"  

        sunion:返回全部給定key的並集。

1.  redis 127.0.0.1:6379> smembers myset2  
2.  1) "three"  
3.  2) "two"  
4.  redis 127.0.0.1:6379> smembers myset3  
5.  1) "two"  
6.  2) "one"  
7.  redis 127.0.0.1:6379> sunion myset2 myset3  
8.  1) "three"  
9.  2) "one"  
10. 3) "two" 

        sunionstore:返回全部給定key的並集。

1.  redis 127.0.0.1:6379> smembers myset2  
2.  1) "three"  
3.  2) "two"  
4.  redis 127.0.0.1:6379> smembers myset3  
5.  1) "two"  
6.  2) "one"  
7.  redis 127.0.0.1:6379> sunionstore myset7 myset2 myset3  
8.  (integer) 3  
9.  redis 127.0.0.1:6379> smembers myset7  
10. 1) "three"  
11. 2) "one"  
12. 3) "two"  

        smove:從第一個key對應的set中移除member並添加到第二個對應的set中。

1.  redis 127.0.0.1:6379> smembers myset2  
2.  1) "three"  
3.  2) "two"  
4.  redis 127.0.0.1:6379> smembers myset3  
5.  1) "two"  
6.  2) "one"  
7.  redis 127.0.0.1:6379> smove myset2 myset7 three  
8.  (integer) 1  
9.  redis 127.0.0.1:6379> smembers myset2  
10. 1) "two"  
11. redis 127.0.0.1:6379> smembers myset3  
12. 1) "two"  
13. 2) "one"  
14. 3) "three" 

        scard:返回名稱爲key的set的元素個數。

1.  redis 127.0.0.1:6379> scard myset3  
2.  (integer) 3 

        sismember:測試member是不是名稱爲key的set的元素。

1.  redis 127.0.0.1:6379> smembers myset2  
2.  1) "two"  
3.  redis 127.0.0.1:6379> sismember myset2 two  
4.  (integer) 1  
5.  redis 127.0.0.1:6379> sismember myset2 one  
6.  (integer) 0  

        srandmember:隨機返回名稱爲key的set的一個元素,但不刪除元素。

1.  redis 127.0.0.1:6379> smembers myset3  
2.  1) "two"  
3.  2) "one"  
4.  redis 127.0.0.1:6379> srandmember myset3  
5.  "two"  
6.  redis 127.0.0.1:6379> srandmember myset3  
7.  "one" 

 

5.sort set類型及操做

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

        zadd:向名稱爲key的zset中添加元素member,score用於排序。若是該元素存在,則更新其順序。

1.  redis 127.0.0.1:6379> zadd myzset 1 "one"  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> zadd myzset 2 "two"  
4.  (integer) 1  
5.  redis 127.0.0.1:6379> zadd myzset 3 "two"  
6.  (integer) 0  
7.  redis 127.0.0.1:6379> zrange myzset 0 -1 withscores  
8.  1) "one"  
9.  2) "1"  
10. 3) "two"  
11. 4) "3"  

        zrem:刪除名稱爲key的zset中的元素member

1.  redis 127.0.0.1:6379> zrange myzset 0 -1 withscores  
2.  1) "one"  
3.  2) "1"  
4.  3) "two"  
5.  4) "3"  
6.  redis 127.0.0.1:6379> zrem myzset two  
7.  (integer) 1  
8.  redis 127.0.0.1:6379> zrange myzset 0 -1 withscores  
9.  1) "one"  
10. 2) "1"  

        zincrby:若是在名稱爲key的zset中已經存在元素member,則該元素的score增長increment,不然向該集合中添加該元素,其score的值爲increment。

1.  redis 127.0.0.1:6379> zadd myzset2 1 "one"  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> zadd myzset2 2 "two"  
4.  (integer) 1  
5.  redis 127.0.0.1:6379> zincrby myzset2 2 "one"  
6.  "3" //表明one的順序號變成了3  
7.  redis 127.0.0.1:6379> zrange myzset2 0 -1 withscores  
8.  1) "two"  
9.  2) "2"  
10. 3) "one"  
11. 4) "3" 

        zrank:返回名稱爲key的zset中member元素的排名(按score從小到大排序)即下標。

1.  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
2.  1) "one"  
3.  2) "1"  
4.  3) "two"  
5.  4) "2"  
6.  5) "three"  
7.  6) "3"  
8.  7) "five"  
9.  8) "5"  
10. redis 127.0.0.1:6379> zrank myzset3 two  
11. (integer) 1 //two的下標是1(從0開始) 

        zrevrank:返回名稱爲key的zset中member元素的排名(按score從大到小排序)即下標。

1.  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
2.  1) "one"  
3.  2) "1"  
4.  3) "two"  
5.  4) "2"  
6.  5) "three"  
7.  6) "3"  
8.  7) "five"  
9.  8) "5"  
10. redis 127.0.0.1:6379> zrevrank myzset3 two  
11. (integer) 2

        zrevrange:返回名稱爲key的zset(按score從大到小順序)中的index從start到end的全部元素。

1.  redis 127.0.0.1:6379> zrevrange myzset3 0 -1 withscores  
2.  1) "five"  
3.  2) "5"  
4.  3) "three"  
5.  4) "3"  
6.  5) "two"  
7.  6) "2"  
8.  7) "one"  
9.  8) "1"  

        zrangebyscore:返回集合中score在給定區間的元素。

1.  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
2.  1) "one"  
3.  2) "1"  
4.  3) "two"  
5.  4) "2"  
6.  5) "three"  
7.  6) "3"  

8.  redis 127.0.0.1:6379> zrangebyscore myzset3 2 3 withscores  
9.  1) "two"  
10. 2) "2"  
11. 3) "three"  
12. 4) "3"  

        zcount:返回集合中score在給定區間的數量。

1.  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
2.  1) "one"  
3.  2) "1"  
4.  3) "two"  
5.  4) "2"  
6.  5) "three"  
7.  6) "3"  
8.  7) "five"  
9.  8) "5"  

10. redis 127.0.0.1:6379> zcount myzset3 2 3  
11. (integer) 2  

        zcard:返回集合中的元素個數。

1.  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
2.  1) "one"  
3.  2) "1"  
4.  3) "two"  
5.  4) "2"  
6.  5) "three"  
7.  6) "3"  
8.  7) "five"  
9.  8) "5"  

10. redis 127.0.0.1:6379> zcard myzset3  
11. (integer) 4  

        zremrangebyrank:刪除集合中排名在給定區間的元素。

1.  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
2.  1) "one"  
3.  2) "1"  
4.  3) "two"  
5.  4) "2"  

6.  redis 127.0.0.1:6379> zremrangebyrank myzset3 1 1  
7.  (integer) 1 //只刪除一個  

8.  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
9.  1) "one"  
10. 2) "1"  

        zremrangebyscore:刪除集合中score在給定區間的元素。

1.  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
2.  1) "one"  
3.  2) "1"  
4.  3) "two"  
5.  4) "2"  
6.  5) "three"  
7.  6) "3"  

8.  redis 127.0.0.1:6379> zremrangebyscore myzset3 1 2  
9.  (integer) 2 //刪除順序爲1和2的  

10. redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
11. 1) "three"  
12. 2) "3"  
相關文章
相關標籤/搜索