3、set集合類型
簡介
set集合和list列表十分的相似,都可以儲存多個字串。但是list列表可以儲存重複值,而set集合中不可重複。
集合結構
其中的user為鍵名,其可以包含多個 不重複 的元素,各不相同
[ "user":[ "yanying1", "yanying2", "yanying3" ] ]
操作方法
加入一個元素到集合,返回 1代表插入成功;0元素代表已經存在
sadd set-key item // 返回 1同理,再添加元素到集合
sadd set-key item2 // 返回1,表示插入成功,集合内没有该元, sadd set-key item3 // 返回 1sadd set-key item // 返回0,表示插入失败,集合内已经存在添加完了之後,我們來獲取集合內全部的元素,成功返回 全部元素
smembers set-key // 得到结果:'item','item2','item3',由于元素不能重复,所以最后一个item不存在集合中下面介紹這個集合的重要功能,使用sismember命令 檢查元素是否在集合中 , 存在返回1,不存在返回0
sismember set-key item4 // 由于item4不在集合中,所以返回 0 sismember set-key item // item元素是存在于集合中的,返回1;同理item2,item3也是会返回1下面我們嘗試刪除一個元素,如果刪除成功過後,會返回 被刪除元素的個數
srem set-key item //删除成功,返回删除个数:1 srem set-key item // item之前已经被删除,所以删除失败,返回个数0。这里不是表示true or false我們再次檢查所有元素,發現只剩下item2,item3
smembers set-key // 返回'item2','item3'PHP版本示範第一步,連結redis資料庫
$redis = new Redis(); $redis->connect('127.0.0.1', 6379);我們先插入一個元素item到set-key集合。 1代表插入成功;0元素代表已經存在
$redis->sadd('set-key','item'); // 添加成功,返回1接下來,我們再次添加一次item到set-key集合,發現已經存在,並且 返回了0
$redis->sadd('set-key','item'); // 集合中已经存在item,添加失败,返回0為了下面演示,我們在添加幾個元素
$redis->sadd('set-key','item2'); $redis->sadd('set-key','item3');現在集合中有3個元素了,我們使用smembers命令全部取出
$r = $redis->smembers('set-key'); var_dump($r);打印過後,我們獲取了一個包含item,item2,item3的數組
array (size=3) 0 => string 'item' (length=4) 1 => string 'item2' (length=5) 2 => string 'item3' (length=5)下面我們使用sismember命令來檢查一個元素是否存在於集合中,這個在 檢查如暱稱是否已經存在 時候非常有用
$redis->sismember('set-key','item'); //该元素存在集合中,则为 boolean true,反之boolean false最後,還是刪除一個元素。假設是item,第一次刪除,該元素存在於集合,則返回 被刪除的個數1
$redis->srem('set-key','item'); // int 1這時,我們再次執行刪除命令,由於元素已經不存在集合,所以,返回 被刪除0個
$redis->srem('set-key','item'); // int 0