set集合類型

高洛峰
發布: 2016-10-20 14:31:46
原創
5364 人瀏覽過

3、set集合類型

簡介

set集合和list列表十分的相似,都可以儲存多個字串。但是list列表可以儲存重複值,而set集合中不可重複。

集合結構

其中的user為鍵名,其可以包含多個 不重複 的元素,各不相同

[
    "user":[
        "yanying1",
        "yanying2",
        "yanying3"
    ]
]
登入後複製

操作方法

set集合類型

加入一個元素到集合,返回 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
登入後複製

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板