redis Set命令,php操做Redis Set函數介紹

Set類型介紹

Set是string類型元素的集合。集合成員是惟一的,不能出現重複的數據;集合是經過哈希表實現的,最大的成員數達到2^32-1個php

Set原生命令

命令 命令描述 實例
SADD key member1 [member2] 向集合key添加一個或多個成員,已經存在的成員將被忽略;若是key不存在,則會建立集合key而後執行插入操做;key不是集合Set類型,則返回一個錯誤,成功則返回被添加到集合中的新元素的數量,被忽略的成員不算 SADD set1 'zhu','yu',返回:2
SPOP key [count] 移除集合key中的一個或多個隨機成員,並返回被移除的成員;集合不存在或者爲空的時候返回nil;count參數只有在3.2+版本以上才能使用 SPOP set1,返回:'yu'
SCARD key 返回集合中成員的個數,key不存在時返回0 SCARD set1, 返回:4
SMEMBERS key 返回集合中全部的成員。不存在的集合被視爲空集合 SMEMBERS set1;返回:"lin" "qing" "yu" "shan"
SMOVE source destination member 將指定成員member從source集合移動到destination集合中,SMOVE是原子操做,要麼移動成功,要麼移動失敗;若是source集合不存在或者source集合中不存在member成員,則SMOVE不作任何操做,返回0;不然將member成員從source移除,添加到destination中去,並返回1;若是destination中存在member,SMOVE則將source中的member刪除掉;若是source或destination不是集合,則返回一個錯誤。若是destination不存在,則建立一個destination並寫入member值 SMOVE set1 set2 'qing';則set2中存在值‘qing’,而set1中被刪除
SREM key member1 [member2] 移除集合key中一個或者多個成員元素,若是member不存在,則忽略此成員元素;若是key不是集合類型,則返回一個錯誤;成功則返回被移除元素的個數,不包括被忽略的成員元素 SREM set2 'qing';返回:1
SRANDMEMBER key [count] 返回集合key中的一個或者count個成員元素,可是不刪除key中相應的成員元素;若是count大於0且小於集合的大小,則返回count個成員元素組成的數組;若是count大於0且大於集合的大小,則返回整個集合;若是count小於0,則返回一個具備重複值的數組,長度爲count的絕對值;count參數存在,若是集合爲空,則返回一個空數組;count參數不存在,若是集合爲空則返回nil。 SRANDMEMBER set1 2;返回:‘yu’ ‘lin’
SISMEMBER key member 判斷成員元素member是否存在於集合key中,若存在則返回1,不存在或者key不存在返回0; SISMEMBER set1 'yu',返回1
SDIFF key1 [key2] 返回給定全部集合的差集,不存在的key視爲空集。差集的結果來自於first_key,而不是其餘的key,也不是全部的key的差集;返回值的類型是列表 set1('yu' 'lin' 'shan'),set2('lin','ops'),SDIFF set1 set2,返回‘yu’ ‘shan’
SDIFFSTORE destination key1 [key2] 返回全部集合的差集並存到集合destination中,若是destination已經存在,則會被覆蓋 SDIFFSTORE set3 set1 set2,則set3的成員包括‘yu’ ‘shan’
SINTER key1 [key2] 返回給定的全部集合的交集。不存在的集合視爲空集,當給定集合中存在空集則結果集也爲空集;成功則返回交集成員列表 SINTER set1 set2,返回:‘lin’
SINTERSTORE destination key1 [key2] 返回給定集合的交集並存儲到集合destination中,若是destination已經存在則將其覆蓋;成功則返回交集的個數 SINTERSTORE set3 set1 set2;返回:1
SUNION key1 [key2] 返回全部給定集合的並集,不存在的集合視爲空集 SUNION set1 set2,返回:"lin" "ops" "yu" "shan"
SUNIONSTORE destination key1 [key2] 將給定集合的並集寫入到指定的集合destination中,若是destination已經存在,則將其覆蓋;成功則返回並集的個數 SUNIONSTORE set3 set1 set2,返回:4
SSCAN key cursor [MATCH pattern] [COUNT count] 用於迭代集合中鍵的元素,返回數組列表 SSCAN set1 0 match *n,返回數組0=>['lin' 'shan']

php操做redis Set的函數

  • sAdd(key,value1,value2 .....)函數
    * 說明:將一個或多個value成員加入到集合key中,若key不存在,則新建集合key;
    * 參數:key(集合名稱),value(將要插入集合key的成員)
    * 返回值:成功則返回插入到key中的成員個數,失敗則返回false
    * php $ret = $redis->sAdd($key1,'zhu','yu'); var_dump($ret); /* 2 */
  • sPop(key,[count])函數
    * 說明:隨機彈出集合key中的一個或者count個成員
    * 參數:key(集合名稱),count(可選項,要彈出成員的個數)
    * 返回:count不存在,隨機返回key中的一個成員;count存在,返回一個包含多個key成員的數組,count>key的長度,則返回整個集合組成的數組;若key不是Set類型,則返回false
    * 注意: redis的版本>=3.2才能使用count參數
    * php $redis->sAdd($key1,'lin','qing'); $ret = $redis->sPop($key1); var_dump($ret); /* ‘zhu’ */
  • sCard(key), sSize(key)函數
    * 說明:獲取集合key中成員的個數,兩個函數做用是相同的
    * 參數:key(集合名稱)
    * 返回:成功則返回集合的長度,集合不存在則返回false
    * php $ret = $redis->sCard($key1); var_dump($ret); /* 4 */
  • sMembers(key), sGetMembers(key)函數
    * 說明:獲取集合key中全部的成員,兩個函數做用是相同的
    * 參數:key(集合名稱)
    * 返回:成功則返回包含key全部成員的數組,數組是隨機的,集合key爲空,則返回一個空數組
    * php $ret = $redis->sMembers($key1); var_dump($ret); /* array(4) { [0]=> string(4) "qing" [1]=> string(3) "lin" [2]=> string(2) "yu" [3]=> string(3) "zhu" } */ $res = $redis->sMembers($key2); var_dump($res); /* array(0) { } */
  • sMove(srcKey,dstKey,member)函數
    * 說明:從srcKey中移除member,而後寫入到dstKey中,此操做是原子操做,要麼成功,要麼失敗;
    * 參數:srcKey,dstKey(集合名稱),member(將要操做的成員)
    * 返回:執行成功返回true,失敗則返回false(srcKey,dstKey,member不存在)
    * php $ret = $redis->sMove($key1,$key2,'yu'); var_dump($ret); /* bool(true) */ $redis->sMembers($key2); /* ‘yu’ */
  • sRem(key,member1,[member2],...), sRemove(key,member,[member2],...)函數
    * 說明:移除集合key中的成員member,兩個函數做用是相同的
    * 參數: key(集合的名稱),member(集合key中的成員)
    * 返回:返回從key中移除的成員的個數
    * php $ret = $redis->sRem($key1,'lin'); var_dump($ret); /* int(1) */
  • sRandMember(key,[count])函數
    * 說明:從集合key中隨機取出一個或count個成員,可是不移除key中的成員
    * 參數:key(集合的名稱),count(可選項,隨機取出成員的個數)
    * 返回值:沒有count參數,返回key中的一個成員(string);存在count,則返回隨機取出的成員組成的數組(array):count>0且大於或等於集合key的大小,則返回整個集合;count>0且小於key的大小,則返回key中的count個成員,且不重複;count<0且絕對值小於key的大小,則返回|count|個不含重複值的數組;count<0且絕對值大於key的大小,則返回|count|個含有重複值的數組;key爲空集,則返回一個空數組;key不是集合類型,則返回false;
    * php $redis->sRandMember($key1,2); /* array(2) { [0]=> string(4) "qing" [1]=> string(3) "zhu" } */ $redis->sRandMember($key1,-3); /* array(3) { [0]=> string(4) "qing" [1]=> string(3) "zhu" [2]=> string(4) "qing" } */ $redis->sRandMember($key4,-3); /* array(0) { } */ $redis->sRandMember('string1',6); /* bool(false) */
  • sIsMember(key,member),sContains(key,member)函數
    * 說明: 判斷member是否存在於集合key中,兩個函數的做用是同樣的
    * 參數: key(集合的名稱),member(須要判斷的值)
    * 返回:若是member存在於集合key中,則返回true,不然返回false
    * php $redis->sIsMember($key1,'qing'); /* true */
  • sDiff(key1,key2,.....keyN)函數
    * 說明:獲取多個key之間的差集並返回
    * 參數:keyN(集合的名稱)
    * 返回:與key1相比較獲得的差集所組成的數組
    * php $redis->sDiff($key1,$key2); /* array(2) { [0]=> string(4) "qing" [1]=> string(3) "zhu" } */
  • sDiffStore(dstKey,key1,key2, ..... keyN)函數
    * 說明:獲取多個給定的集合key之間的差集並存儲到集合dstKey中;若是dstKey已經存在則將其覆蓋
    * 參數:dstKey(獲取差集以後要存儲的集合),keyN(給定的集合key)
    * 返回:執行成功則返回差集的個數;失敗則返回false
    * php $redis->sDiffStore($key3,$key1,$key2); /* 2 */
  • sInter(key1,key2,.....keyN)函數
    * 說明:返回全部給定的集合key的交集所組成的數組
    * 參數:keyN(集合名稱)
    * 返回:返回全部給定的集合key的交集所組成的數組,若是給定的集合中存在空集,則返回一個空數組
    * php $redis->sInter($key1,$key2); /* array(0) { } */
  • sInterStore(dstKey,key1,...,keyN)函數
    * 說明:獲取全部給定的集合key的交集並存入集合dstKey中;若是dstKey已經存在,則將其覆蓋。
    * 參數:dstKey(目標集合的名稱),keyN(給定的集合key)
    * 返回:獲取全部給定的集合key的交集並存入集合dstKey中,成功則將交集寫入到dstKey中並返回交集的個數,失敗則返回false;
    * php $redis->sInterStore($key3,$key1,$key2);/* int(0) */
  • sUnion(key1,...,keyN)函數
    * 說明:返回給定的多個key的交集
    * 參數:keyN(集合名稱)
    * 返回:成功則返回全部集合的交集所組成的索引數組,失敗則返回false
    * php $redis->sUnion($key1,$key2);/* array(3) { [0]=> string(4) "qing" [1]=> string(2) "yu" [2]=> string(3) "zhu" } */
  • sUnionStore(dstkey,key1,....,keyN)函數
    * 說明: 將給定集合的並集寫入到指定的集合dstKey中;若是dstKey已經存在,則將其覆蓋。
    * 參數:dstkey(指定的集合),keyN(給定的集合)
    * 返回:成功則返回dstKey中集合的個數,失敗則返回false
    * php $redis->sUnionStore($key3,$key1,$key2); /* int(3) */
  • sScan(key,iterator,pattern,count)函數 * 說明:掃描(遍歷)一遍集合的成員 * 參數:key(集合的名稱),iterator(迭代器),pattern(遍歷時的匹配條件),count(指望返回成員的數量) * 返回:執行成功返回一個數組,失敗則返回false
相關文章
相關標籤/搜索