set集合和list列表十分的相似,都可以儲存多個字串。但是list列表可以儲存重複值,而set集合中不可重複。
一:集合資料結構
其中的user為鍵名,其可以包含多個 不重複 的元素,各不相同
[
"user":[
"camellia1",
"camellia2",
"camellia3"
]]
二:操作命令:這裡分兩種,linux、php
1:linux命令應用
首先登陸redis,就像登陸mysql一樣,執行命令:
redis-cli //進入 redis 操作介面
(1)新增乙個元素到集合,返回 1代表插入成功;0元素代表已經存在或失敗
sadd user camellia // 返回(integer) 1
sadd user jerry // 返回(integer) 1
sadd user camellia // 返回(integer) 0,寫入失敗,因為已經存在。
(2)獲取集合內全部的元素,成功返回 全部元素,如果資料量很大,這條命令要謹慎使用
smembers user // 返回 1)
"jerry"2)
"camellia"
(3)這個集合的重要功能,使用sismember命令 檢查元素是否在集合中 , 存在返回1,不存在返回0
sismember user camellia // 返回(integer) 1
sismember user *** // 返回(integer) 0
(4)刪除乙個元素,如果刪除成功過後,會返回 被刪除元素的個數
srem user jerry // 返回(integer) 1
srem user *** // 返回(integer) 0
2:php命令應用
(1)插入乙個元素camellia到user集合。1代表插入成功;0元素代表已經存在
$res
=$redis
->
sadd
("user"
,"camellia");
// 新增成功,返回1
$ult
=$redis
->
sadd
("user"
,"camellia");
// 新增失敗,返回0,因為資料不可以重複
(2)使用smembers命令將集合中的元素全部取出
// 將資料全部取出,因為我們只新增了乙個,只有camellia
$array = $redis->smembers(「user」);
(3):使用sismember命令來檢查乙個元素是否存在於集合中,這個在檢查如暱稱是否已經存在 時候非常有用
// 還是剛剛我們看的那個最重要的命令,檢視當前元素是否在集合中
$rrr
=$redis
->
sismember
("user"
,"camellia");
// 返回 true
$rrr
=$redis
->
sismember
("user"
,"***");
// 返回 false
(4)刪除乙個元素,返回刪除的個數。返回1,刪除成功,返回0,刪除失敗// 刪除乙個元素,返回刪除的個數。返回1,刪除成功,返回0,刪除失敗
$esd
=$redis
->
srem
("user"
,"camellia");
//返回 int 1
3:set集合型別常用命令
序號命令及描述
sadd key member1 [member2]
向集合新增乙個或多個成員
scard key
獲取集合的成員數
sdiff key1 [key2]
返回給定所有集合的差集
sdiffstore destination key1 [key2]
返回給定所有集合的差集並儲存在 destination 中
sinter key1 [key2]
返回給定所有集合的交集
sinterstore destination key1 [key2]
返回給定所有集合的交集並儲存在 destination 中
sismember key member
判斷 member 元素是否是集合 key 的成員
smembers key
返回集合中的所有成員
smove source destination member
將 member 元素從 source 集合移動到 destination 集合
spop key
移除並返回集合中的乙個隨機元素
srandmember key [count]
返回集合中乙個或多個隨機數
srem key member1 [member2]
移除集合中乙個或多個成員
sunion key1 [key2]
返回所有給定集合的並集
sunionstore destination key1 [key2]
所有給定集合的並集儲存在 destination 集合中
sscan key cursor [match pattern]
[count count]
迭代集合中的元素
以上基本上是我看的redis set集合型別的基本內容,有不足的地方,還請大佬指出。 redis之集合型別(set)
redis集合是乙個無序的字串合集。你可以以o 1 的時間複雜度 無論集合中有多少元素時間複雜度都為常量 完成 新增,刪除以及測試元素是否存在的操作。redis集合有著不允許相同成員存在的優秀特性。向集合中多次新增同一元素,在集合中最終只會存在乙個此元素。實際上這就意味著,在新增元素前,你並不需要事...
redis無序集合set型別詳解
redis中的set是string型別的無序集合,set元素最大可以包含2的32次方 1個元素。利用set集合型別,我們可以快速取出n個key之間的並集 交集 差集等,從而輕鬆解決mysql等資料庫不容易實現這種運算的缺陷。與上篇中list型別不同的是,set集合不允許出現重複的元素,因此set型別...
redis集合set操作
sadd key value1 value2 向集合中增加元素 smembers key 檢視集合中的元素,由於集合的無序性,檢視的元素可能和插入式順序不一樣 srem value1 value2.刪除集合中名為value1,value2.的元素 返回值 忽略不存在的元素,返回真正刪除元素的個數 s...