Redis(六)set集合类型

138 阅读3分钟

这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战

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 xxx             // 返回(integer) 0

(4)删除一个元素,如果删除成功过后,会返回 被删除元素的个数

srem user jerry             // 返回(integer) 1
srem user xxx               // 返回(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=array = redis->smembers("user");

(3):使用sismember命令来检查一个元素是否存在于集合中,这个在检查如昵称是否已经存在 时候非常有用
// 还是刚刚我们看的那个最重要的命令,查看当前元素是否在集合中
    $rrr = $redis->sismember("user","camellia");    // 返回  true
    $rrr = $redis->sismember("user","xxx"); // 返回  false
(4)删除一个元素,返回删除的个数。返回1,删除成功,返回0,删除失败
// 删除一个元素,返回删除的个数。返回1,删除成功,返回0,删除失败
    $esd = $redis->srem("user","camellia");     //返回 int 1

3:SET集合类型常用命令

序号

命令及描述

1

SADD key member1 [member2] 
  向集合添加一个或多个成员

2

SCARD key 
  获取集合的成员数

3

SDIFF key1 [key2] 
  返回给定所有集合的差集

4

SDIFFSTORE   destination key1 [key2] 
  返回给定所有集合的差集并存储在 destination 中

5

SINTER key1 [key2] 
  返回给定所有集合的交集

6

SINTERSTORE   destination key1 [key2] 
  返回给定所有集合的交集并存储在 destination 中

7

SISMEMBER   key member 
  判断 member 元素是否是集合 key 的成员

8

SMEMBERS   key 
  返回集合中的所有成员

9

SMOVE source destination   member 
  将 member 元素从 source 集合移动到   destination 集合

10

SPOP key 
  移除并返回集合中的一个随机元素

11

SRANDMEMBER   key [count] 
  返回集合中一个或多个随机数

12

SREM key member1 [member2] 
  移除集合中一个或多个成员

13

SUNION key1 [key2] 
  返回所有给定集合的并集

14

SUNIONSTORE   destination key1 [key2] 
  所有给定集合的并集存储在 destination 集合中

15

SSCAN key cursor [MATCH   pattern] [COUNT count] 
  迭代集合中的元素

以上基本上是我看的redis SET集合类型的基本内容,有不足的地方,还请大佬指出。

有好的建议,请在下方输入你的评论。

欢迎访问个人博客 guanchao.site

欢迎访问小程序:

在这里插入图片描述