这是我参与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 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
欢迎访问小程序: