日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

redis 集合操作

發(fā)布時(shí)間:2025/6/15 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis 集合操作 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

SADD key member


將member元素加入到集合key當(dāng)中。


如果member元素已經(jīng)是該集合的成員,那SADD命令不執(zhí)行任何操作。

假如key不存在,則創(chuàng)建一個(gè)只包含member元素作成員的集合。

當(dāng)key不是集合類(lèi)型時(shí),返回一個(gè)錯(cuò)誤。


時(shí)間復(fù)雜度:

? ? O(1)

返回值:

? ? 如果添加元素成功,返回1。

? ? 如果元素已經(jīng)是集合的成員,返回0。


?

Redis代碼??

  • <span?style="font-size:?small;">redis>?SADD?bbs?"v2ex.com"??

  • (integer)?1??

  • redis>?SADD?bbs?"codecompo.com"??

  • (integer)?1??

  • ??

  • redis>?SMEMBERS?bbs?????#?顯示bbs集合中所有成員??

  • 1)?"codecompo.com"??

  • 2)?"v2ex.com"??

  • ??

  • redis>?SADD?bbs?"v2ex.com"??#?嘗試添加重復(fù)元素,返回0??

  • (integer)?0</span>??

  • ?




    SINTER key [key ...]


    返回一個(gè)集合的全部成員,該集合是所有給定集合的交集。


    不存在的key被視為空集。

    當(dāng)給定集合當(dāng)中有一個(gè)空集時(shí),結(jié)果也為空集(根據(jù)集合運(yùn)算定律)。


    時(shí)間復(fù)雜度:

    ? ? O(N * M),N為給定集合當(dāng)中基數(shù)最小的集合,M為給定集合的個(gè)數(shù)。

    返回值:

    ? ? 交集成員的列表。


    ?

    Redis代碼??

  • <span?style="font-size:?small;">redis>?SMEMBERS?group_1??

  • 1)?"LI?LEI"??

  • 2)?"TOM"??

  • 3)?"JACK"???#?<-??

  • ??

  • redis>?SMEMBERS?group_2??

  • 1)?"HAN?MEIMEI"??

  • 2)?"JACK"???#?<-??

  • ??

  • redis>?SINTER?group_1?group_2??

  • 1)?"JACK"</span>??

  • ?

    ?

    ?


    SMOVE source destination member

    ?

    將member元素從source集合移動(dòng)到destination集合。

    ?

    SMOVE是原子性操作。

    如果source集合不存在或不包含指定的member元素,則SMOVE命令不執(zhí)行任何操作,僅返回0。否則,member元素從source集合中被移除,并添加到destination集合中去。

    當(dāng)destination集合已經(jīng)包含member元素時(shí),SMOVE命令只是簡(jiǎn)單地將source集合中的member元素刪除。

    當(dāng)source或destination不是集合類(lèi)型時(shí),返回一個(gè)錯(cuò)誤。

    ?

    復(fù)雜度:

    ? ? O(1)

    返回值:

    ? ? 如果member元素被成功移除,返回1。

    ? ? 如果member元素不是source集合的成員,并且沒(méi)有任何操作對(duì)destination集合執(zhí)行,那么返回0。

    ?

    ?

    Redis代碼??

  • redis>?SMEMBERS?songs??

  • 1)?"Billie?Jean"??

  • 2)?"Believe?Me"??

  • ??

  • redis>?SMEMBERS?my_songs??

  • (empty?list?or?set)??

  • ??

  • redis>?SMOVE?songs?my_songs?"Believe?Me"??

  • (integer)?1??

  • ??

  • redis>?SMEMBERS?songs??

  • 1)?"Billie?Jean"??

  • ??

  • redis>?SMEMBERS?my_songs??

  • 1)?"Believe?Me"??

  • ?

    ?


    SUNION key [key ...]

    ?

    返回一個(gè)集合的全部成員,該集合是所有給定集合的并集。

    ?

    不存在的key被視為空集。

    ?

    復(fù)雜度:

    ? ? O(N),N是所有給定集合的成員數(shù)量之和。

    返回值:

    ? ? 并集成員的列表。

    ?

    ?

    Redis代碼??

  • redis>?SMEMBERS?songs??

  • 1)?"Billie?Jean"??

  • ??

  • redis>?SMEMBERS?my_songs??

  • 1)?"Believe?Me"??

  • ??

  • redis>?SUNION?songs?my_songs??

  • 1)?"Billie?Jean"??

  • 2)?"Believe?Me"??

  • ?

    ?


    SCARD key

    ?

    返回集合的基數(shù)(集合中元素的數(shù)量)。

    ?

    復(fù)雜度:

    ? ? O(1)

    返回值:

    ? ? 集合的基數(shù)。

    ? ? 當(dāng)key不存在時(shí),返回0。

    ?

    ?

    Redis代碼??

  • redis>?SMEMBERS?tool??

  • 1)?"pc"??

  • 2)?"printer"??

  • 3)?"phone"??

  • ??

  • redis>?SCARD?tool??

  • (integer)?3??

  • ??

  • redis>?SMEMBERS?fake_set??

  • (empty?list?or?set)??

  • ??

  • redis>?SCARD?fake_set??

  • (integer)?0??

  • ?

    ?


    SINTERSTORE destination key [key ...]

    ?

    此命令等同于SINTER,但它將結(jié)果保存到destination集合,而不是簡(jiǎn)單地返回結(jié)果集。

    ?

    如果destination集合已經(jīng)存在,則將其覆蓋。

    ?

    時(shí)間復(fù)雜度:

    ? ? O(N * M),N為給定集合當(dāng)中基數(shù)最小的集合,M為給定集合的個(gè)數(shù)。

    返回值:

    ? ? 結(jié)果集中的元素?cái)?shù)量。

    ?

    ?

    Redis代碼??

  • redis>?SMEMBERS?songs??

  • 1)?"good?bye?joe"???#?<-??

  • 2)?"hello,peter"??

  • ??

  • redis>?SMEMBERS?my_songs??

  • 1)?"good?bye?joe"???#?<-??

  • 2)?"falling"??

  • ??

  • redis>?SINTERSTORE?song_and_my_song?songs?my_songs??

  • (integer)?1??

  • ??

  • redis>?SMEMBERS?song_and_my_song??

  • 1)?"good?bye?joe"??

  • ?

    ?


    SPOP key

    ?

    移除并返回集合中的一個(gè)隨機(jī)元素。

    ?

    復(fù)雜度:

    ? ? O(1)

    返回值:

    ? ? 被移除的隨機(jī)元素。

    ? ? 當(dāng)key不存在或key是空集時(shí),返回nil。

    ?

    ?

    Redis代碼??

  • redis>?SMEMBERS?my_sites??

  • 1)?"huangz.iteye.com"??

  • 2)?"sideeffect.me"??

  • 3)?"douban.com/people/i_m_huangz"??

  • ??

  • redis>?SPOP?my_sites??

  • "huangz.iteye.com"??

  • ??

  • redis>?SMEMBERS?my_sites??

  • 1)?"sideeffect.me"??

  • 2)?"douban.com/people/i_m_huang"??

  • ?

    ?


    SUNIONSTORE destination key [key ...]

    ?

    此命令等同于SUNION,但它將結(jié)果保存到destination集合,而不是簡(jiǎn)單地返回結(jié)果集。

    ?

    如果destination已經(jīng)存在,則將其覆蓋。

    ?

    復(fù)雜度:

    ? ? O(N),N是所有給定集合的成員數(shù)量之和。

    返回值:

    ? ? 結(jié)果集中的元素?cái)?shù)量。

    ?

    ?

    Redis代碼??

  • redis>?SMEMBERS?ms_sites??

  • 1)?"microsoft.com"??

  • 2)?"skype.com"??

  • ??

  • redis>?SMEMBERS?google_sites??

  • 1)?"youtube.com"??

  • 2)?"google.com"??

  • ??

  • redis>?SUNIONSTORE?google_and_ms_sites?ms_sites?google_sites??

  • (integer)?4??

  • ??

  • redis>?SMEMBERS?google_and_ms_sites??

  • 1)?"microsoft.com"??

  • 2)?"skype.com"??

  • 3)?"google.com"??

  • 4)?"youtube.com"??

  • ?

    ?


    SDIFF key [key ...]

    ?

    返回一個(gè)集合的全部成員,該集合是第一個(gè)給定集合和其他所有給定集合的差集 。

    ?

    不存在的key被視為空集。

    ?

    復(fù)雜度:

    ? ? O(N),N是所有給定集合的成員數(shù)量之和。

    返回值:

    ? ? 交集成員的列表。

    ?

    ?

    Redis代碼??

  • redis>?SMEMBERS?peter's_movies??

  • 1)?"bet?man"??

  • 2)?"start?war"??

  • 3)?"2012"???#?<-??

  • ??

  • redis>?SMEMBERS?joe's_movies??

  • 1)?"hi,?lady"??

  • 2)?"Fast?Five"??

  • 3)?"2012"???#?<-??

  • ??

  • redis>?SDIFF?peter's_movies?joe's_movies??

  • 1)?"bet?man"??

  • 2)?"start?war"??

  • ?

    ?


    SISMEMBER key member

    ?

    判斷member元素是否是集合的成員。

    ?

    時(shí)間復(fù)雜度:

    ? ? O(1)

    返回值:

    ? ? 如果member元素是集合的成員,返回1。

    ? ? 如果member元素不是集合的成員,或key不存在,返回0。

    ?

    ?

    Redis代碼??

  • redis>?SMEMBERS?joe's_movies??

  • 1)?"hi,?lady"??

  • 2)?"Fast?Five"??

  • 3)?"2012"??

  • ??

  • redis>?SISMEMBER?joe's_movies?"bet?man"??

  • (integer)?0??

  • ??

  • redis>?SISMEMBER?joe's_movies?"Fast?Five"??

  • (integer)?1??

  • ?

    ?


    SRANDMEMBER key

    ?

    返回集合中的一個(gè)隨機(jī)元素。

    ?

    該操作和SPOP相似,但SPOP將隨機(jī)元素從集合中移除并返回,而SRANDMEMBER則僅僅返回隨機(jī)元素,而不對(duì)集合進(jìn)行任何改動(dòng)。

    ?

    時(shí)間復(fù)雜度:

    ? ? O(1)

    返回值:

    ? ? 被選中的隨機(jī)元素。 當(dāng)key不存在或key是空集時(shí),返回nil。

    ?

    ?

    Redis代碼??

  • redis>?SMEMBERS?joe's_movies??

  • 1)?"hi,?lady"??

  • 2)?"Fast?Five"??

  • 3)?"2012"??

  • ??

  • redis>?SRANDMEMBER?joe's_movies??

  • "Fast?Five"??

  • ??

  • redis>?SMEMBERS?joe's_movies????#?集合中的元素不變??

  • 1)?"hi,?lady"??

  • 2)?"Fast?Five"??

  • 3)?"2012"??

  • ?

    ?


    SDIFFSTORE destination key [key ...]

    ?

    此命令等同于SDIFF,但它將結(jié)果保存到destination集合,而不是簡(jiǎn)單地返回結(jié)果集。

    ?

    如果destination集合已經(jīng)存在,則將其覆蓋。

    ?

    復(fù)雜度:

    ? ? O(N),N是所有給定集合的成員數(shù)量之和。

    返回值:

    ? ? 結(jié)果集中的元素?cái)?shù)量。

    ?

    ?

    Redis代碼??

  • redis>?SMEMBERS?joe's_movies??

  • 1)?"hi,?lady"??

  • 2)?"Fast?Five"??

  • 3)?"2012"??

  • ??

  • redis>?SMEMBERS?peter's_movies??

  • 1)?"bet?man"??

  • 2)?"start?war"??

  • 3)?"2012"??

  • ??

  • redis>?SDIFFSTORE?joe_diff_peter?joe's_movies?peter's_movies??

  • (integer)?2??

  • ??

  • redis>?SMEMBERS?joe_diff_peter??

  • 1)?"hi,?lady"??

  • 2)?"Fast?Five"??

  • ?

    ?

    ?

    SMEMBERS key

    ?

    返回集合中的所有成員。

    ?

    時(shí)間復(fù)雜度:

    ? ? O(N),N為集合的基數(shù)。

    返回值:

    ? ? 集合中的所有成員。

    ?

    ?

    Redis代碼??

  • redis>?SMEMBERS?prog_lang??

  • 1)?"c"??

  • 2)?"ruby"??

  • 3)?"python"??

  • ?

    ?


    SREM key member

    ?

    移除集合中的member元素。

    ?

    如果member元素不是集合中的成員,則SREM命令不執(zhí)行任何操作。

    當(dāng)key不是集合類(lèi)型,返回一個(gè)錯(cuò)誤。

    時(shí)間復(fù)雜度:

    ? ? O(1)

    返回值:

    ? ? 如果移除元素成功,返回1。

    ? ? 如果member元素不是集合成員,返回0。

    ?

    ?

    Redis代碼??

  • redis>?SMEMBERS?prog_lang??

  • 1)?"c"??

  • 2)?"ruby"??

  • 3)?"python"??

  • ??

  • redis>?SREM?prog_lang?"c"??

  • (integer)?1??

  • ??

  • redis>?SMEMBERS?prog_lang??

  • 1)?"ruby"??

  • 2)?"python"??

  • ??

  • redis>?SREM?prog_lang?"scheme"??

  • (integer)?0??

  • ??

  • redis>?SMEMBERS?prog_lang??

  • 1)?"ruby"??

  • 2)?"python"??

  • ? ?


    轉(zhuǎn)載于:https://my.oschina.net/goudingcheng/blog/652348

    總結(jié)

    以上是生活随笔為你收集整理的redis 集合操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。