本文介紹Redis中與集合相關的命令,內容主要來源于Redis的官方網站,如有需要請參看:http://redis.io/commands#set。
1.SADD
語法:SADD key
member
說明:該操作的時間復雜度為O(1)。向存儲在key上的集合中添加元素。如果該元素已經存在,那么將不會執行任何操作。如果指定的key不存在,那么將會創建一個新的集合,并且該集合中包含新添加的唯一一個元素。如果key對應的值不是set類型,那么將會發生錯誤。
返回值:如果向集合中添加了元素,那么返回值為1;如果member已經是該集合中的元素,那么返回值為0。
該命令自0.07版本后可用。
2.SCARD
語法:SCARD
key
說明:該操作的時間復雜度為O(1)。返回key對應的集合中所存儲的元素個數。
返回值:返回集合中的元素個數,如果key不存在,那么返回值為0。
該命令自0.07版本后可用。
3.SDIFF
語法:SDIFF
key [key
...]
說明:該操作的時間復雜度為O(N),此處N為包含在所有指定集合中元素個數。返回第一個集合與后續所有集合中的元素的差集。
返回值:結果集合的元素列表。
該命令自0.100版本后可用。
4.SDIFFSTORE
語法:SDIFFSTORE
destination key [key
...]
說明:該操作的時間復雜度為O(N),此處N為包含在所有指定集合中元素個數。該命令等同于SDIFF,但是該命令會將結果存儲在destination中。如果目標已經存在,它將會被重寫。
返回值:結果集合中的元素個數。
該命令自0.100版本后可用。
5.SINTER
語法:SINTER
key [key
...]
說明:在最壞的情況下,該操作的時間復雜度為O(N*M),此處N為最小的集合的元素個數,而M為所給集合的個數。返回所有指定集合的交集。如果keys不存在,那么它將被認為是空集合。如果指定的keys中有一個是空集合,那么結果集合也將為空集合。
返回值:結果集合中的元素列表。
該命令自0.07版本后可用。
6.SINTERSTORE
語法:SINTERSTORE
destination key [key
...]
說明:該操作的時間復雜度為O(N*M),此處N為最小的集合的元素個數,而M為所給集合的個數。該命令等同于SINTER,但是該命令并不直接返回結果集合,而是將其存儲在destination中。
如果目標集合已經存在,那么它將被重寫。
返回值:結果集合中的元素個數。
該命令自0.07版本后可用。
7.SISMEMBER
語法:SISMEMBER
key
memeber
說明:該操作的時間復雜度為O(1)。查看指定的member是否是key對應的集合中的元素。
返回值:如果指定的member是集合中的元素,那么返回值為1;如果指定的元素不是集合中的元素,或者key不存在,那么返回值為0。
該命令自0.07版本后可用。
8.SMEMBERS
語法:SMEMBERS
key
說明:該操作的時間復雜度為O(N),此處N為集合的元素個數。返回存儲在key上的集合中所有元素的個數。該命令與具有一個參數的SINTER命令效果相同。
返回值:返回集合中的所有元素。
該命令自0.07版本后可用。
9.SMOVE
語法:SMOVE
source destination
member
說明:該操作的時間復雜度為O(1)。將元素member從集合source中移至destination中。該操作是原子性的。對別的客戶端而言,在每一個給定的時刻,元素會使source或者destination中的一員。如果source集合不存在或者沒有包含指定的元素,將不會執行任何操作,并且返回值為0。不然的話,元素將會從source中移除,并且添加到destination中。當指定的元素已經在destination集合中存在時,該元素僅僅會從source集合中移除。如果source或者destination對應的值不是集合類型,那么將會發生錯誤。
返回值:如果元素被移除,那么將會返回1;如果指定的元素不是source中的一員并且沒有執行任何操作,那么返回值為0。
該命令自0.091版本后可用。
10.SPOP
語法:SPOP
key
說明:該操作的時間復雜度為O(1)。從key對應的集合中移除并返回一個隨機的元素。該操作與SRANDMEMBER類似,但是SRANDMEMBER會從集合中返回一個隨機元素但是并不移除它。
返回值:返回被移除的元素,如果key不存在,那么返回值為nil。
該命令自0.101版本后可用。
11.SRANDMEMBER
語法:SRANDMEMBER
key
說明:該操作的時間復雜度為O(1)。返回key對應的集合中的一個隨機元素。該操作與SPOP類似,但是SPOP命令會移除隨機選擇的元素,SRANDMEMBER僅僅是在不改變原有集合的基礎上返回該隨機元素。
返回值:返回隨機選取的元素,如果指定的key不存在,那么返回值為nil。
該命令自1.001版本后可用。
12.SREM
語法:SREM
key
member
說明:從key對應的集合中移除指定的元素member。如果member不是集合中的一個元素,那么將不執行任何操作。
如果key對應的值并不是集合類型,那么將會發生錯誤。
返回值:如果元素被移除,那么返回值為1;如果member不是集合中的元素,那么返回值為0。
該命令自0.07版本后可用。
13.SUNION
語法:SUNION
key [key
...]
說明:該操作的時間復雜度為O(N),此處N為所有給定的集合中元素的總數。返回所有給定集合元素的合集。如果指定的key不存在,那么將會被看作空集對待。
返回值:結果集合中的元素列表。
該命令自0.091版本后可用。
14.SUNINOSTORE
語法:SUNINOSTORE
destination key [key
...]
說明:該操作的時間復雜度為O(N),此處N為給定集合中所有元素的總數。該命令等同于SUNION,但是該操作并不返回結果集合,而是將結果存儲在destination中。如果destination已經存在,那么它將會被重寫。
返回值:返回結果集合中元素的個數。