摘要:集合是類型的無序集合,成員唯一,不會出現重復的數據。應用場景統計訪問可以用來記錄訪問的,有成員唯一性,所以不用擔心重復記錄。聯系人粉絲列表記錄用戶的聯系人粉絲列表或者關注列表,利用的交集可以得到不同用戶的共同關注共同聯系人等。
Set(集合)
Set 是 String 類型的無序集合,成員唯一,不會出現重復的數據。Set 最多可以包含 232 - 1 個元素(40多億)。
應用場景 統計訪問IP可以用來記錄訪問的IP,Set 有成員唯一性,所以不用擔心 重復記錄。
聯系人、粉絲列表記錄用戶的聯系人、粉絲列表或者關注列表,利用Set 的交集可以得到不同用戶的共同關注、共同聯系人等。
實例sAdd($redisKey, "kobe");// 向set中添加成員 print_r($redis->sMembers($redisKey));// 獲取set中的所有成員 Array ( [0] => kobe ) echo "
"; var_dump($redis->sAdd($redisKey, "kobe"));// 因為set具有成員唯一性,所以這個添加不成功 int(0) echo "
"; $redis->sAdd($redisKey, "Gasol"); echo $redis->sCard($redisKey) . "
";// 獲取set中的成員數 2 var_dump($redis->sIsMember($redisKey, "kobe"));// 當前值是否存在 bool(true) echo "
"; $redis->sAdd($redisKey1, "kobe", "fisher", "iverson");// Array ( [0] => iverson [1] => kobe [2] => fisher ) echo $redis->sPop($redisKey1) . "
";// 獲取并移除一個隨機元素 iverson print_r($redis->sInter($redisKey, $redisKey1));// 獲取指定set的交集 Array ( [0] => kobe ) echo "
"; print_r($redis->sDiff($redisKey, $redisKey1));// 獲取指定set的差集 Array ( [0] => Gasol ) echo "
"; echo $redis->sRandMember($redisKey) . "
";// 獲取指定數量的隨機數,默認為1個 Gasol var_dump($redis->sRem($redisKey1, "kobe"));// 刪除指定值 echo "
"; $redis->sAdd($redisKey2, "Lakers", "Spurs", "Warriors", "Rockets"); $redis->sAdd($redisKey3, "Celtics", "Bulls", "76ers", "Warriors", "Rockets"); $redis->sInterStore("temp", $redisKey2, $redisKey3);// 獲取指定set的交集,并將結果存儲在自定義set中 print_r($redis->sMembers("temp"));// Array ( [0] => Rockets [1] => Warriors ) echo "
"; $redis->sDiffStore("temp1", $redisKey2, $redisKey3);// 獲取指定set的差集,并將結果存儲在自定義set中 print_r($redis->sMembers("temp1"));// Array ( [0] => Lakers [1] => Spurs ) echo "
"; $redis->sMove("temp", "temp1", "Rockets");// 將指定值,從temp中移動到temp1中 print_r($redis->sMembers("temp1"));// Array ( [0] => Lakers [1] => Spurs ) echo "
"; print_r($redis->sUnion($redisKey2, $redisKey3));// 獲取指定set的并集 Array ( [0] => Lakers [1] => Warriors [2] => Bulls [3] => Spurs [4] => 76ers [5] => Celtics [6] => Rockets ) echo "
"; $redis->sUnionStore("temp2", $redisKey2, $redisKey3);// 獲取指定set的并集,并將結果存儲在自定義set中 print_r($redis->sMembers("temp2"));// Array ( [0] => Lakers [1] => Warriors [2] => Bulls [3] => Spurs [4] => 76ers [5] => Celtics [6] => Rockets )
參考資料:菜鳥教程。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29967.html
摘要:數據持久化到磁盤在的編碼中沒有使用類似的事件循環,我們在此依賴字段作為標識。變化即為持久化的時機。服務啟動加載數據持久化數據從文件加載進內存的方式是模擬客戶端執行命令,逐條將文件命令發送給服務端。 寫在前面 本文實現的Godis代碼版本為:v0.1 Redis持久化方式 RDB持久化 BGSAVE和SAVE命令生成RDB文件,存儲數據庫信息。當服務器啟動,RDB文件也會作為原始數據,加...
閱讀 3715·2021-11-17 09:33
閱讀 2725·2021-09-22 15:12
閱讀 3344·2021-08-12 13:24
閱讀 2439·2019-08-30 11:14
閱讀 1733·2019-08-29 14:09
閱讀 1326·2019-08-26 14:01
閱讀 3061·2019-08-26 13:49
閱讀 1775·2019-08-26 12:16