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