Redis(六)set集合型別

2021-10-14 19:58:43 字數 3307 閱讀 3331

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...