簡介 redis
set集合和list列表十分的類似,均可以存儲多個字符串。可是list列表能夠存儲重複值,而set
集合中不可重複。數據庫
集合結構數組
其中的user
爲鍵名,其能夠包含多個 不重複 的元素,各不相同命令行
[ "user":[ "yanying1", "yanying2", "yanying3" ] ]
操做方法code
命令 | 行爲 |
---|---|
sadd | 將指定的元素添加到集合 |
smembers | 返回集合所包含的全部元素,若是數據量大, 謹慎使用 |
sismember | 檢查給定的元素是否在集合中 |
srem | 若是給定的元素在集合中,則刪除它 |
$redis->sadd |
PHP版本將元素添加到集合 |
$redis->smembers |
PHP版本取出集合中的全部元素 |
$redis->sismember |
PHP版本檢測元素是否存在於集合中 |
$redis->srem |
PHP版本從集合中刪除一個元素 |
演示(命令行 + PHP演示)rem
命令行:字符串
添加一個元素到集合,返回 1
表明插入成功;0
元素表明已經存在string
sadd set-key item // 返回 1
同理,再添加元素到集合it
sadd set-key item2 // 返回1,表示插入成功,集合內沒有該元素 sadd set-key item3 // 返回1 sadd set-key item // 返回0,表示插入失敗,集合內已經存在
添加完了以後,咱們來獲取集合內所有的元素,成功返回 所有元素table
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