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

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

Set類型介紹

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

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
posted @ 2018-11-14 17:18 StimmerLove 閱讀(...) 評論(...) 編輯 收藏
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章