Redis——》数据类型:set(集合)
推荐链接:
总结——》【Java】
总结——》【Mysql】
总结——》【Redis】
总结——》【Spring】
总结——》【SpringBoot】
总结——》【MyBatis、MyBatis-Plus】相关链接:
Redis——》数据类型
Redis——》数据类型:string(字符串)
Redis——》数据类型:hash(哈希)
Redis——》数据类型:list(列表)
Redis——》数据类型:set(集合)
Redis——》数据类型:zset(有序集合)
Redis——》数据类型:bitmap
Redis——》数据类型:set(集合)
- 一、简介
- 二、应用场景
- 三、底层结构
- 四、操作示例
- (1)增
- (2)删
- (3)改
- (4)查
- (5)计算
一、简介
集合(set)类型是用来保存多个的字符串元素,但是不允许重复元素
二、应用场景
用户标签、生成随机数抽奖、社交需求
三、底层结构
intset(整数集合)、hashtable(哈希表)
四、操作示例
(1)增
语法 | 示例 | 描述 |
---|---|---|
sadd key member1 [member2] | sadd k1 a b | 向集合添加一个或多个成员 |
smove source destination member | smove k1 k2 1 | 将 member 元素从 source 集合移动到 destination 集合 |
(2)删
语法 | 示例 | 描述 |
---|---|---|
spop key | spop k1 | 移除并返回集合中的一个随机元素 |
srem key member1 [member2] | srem k1 a b | 移除集合中一个或多个成员 |
(3)改
见增
(4)查
语法 | 示例 | 描述 |
---|---|---|
scard key | scard k1 | 获取集合的成员数 |
smembers key | smembers k1 | 返回集合中的所有成员 |
sismember key member | sismember k1 a | 判断 member 元素是否是集合 key 的成员 |
srandmember key [count] | srandmember k1 1 | 返回集合中一个或多个随机数 |
sscan key cursor [MATCH pattern] [COUNT count] | 迭代集合中的元素 |
(5)计算
语法 | 示例 | 描述 |
---|---|---|
SDIFF key1 [key2] | sdiff k1 k2 | 返回给定所有集合的差集 |
SDIFFSTORE destination key1 [key2] | sdiffstore destkey k1 k2 | 返回给定所有集合的差集并存储在 destination 中 |
SINTER key1 [key2] | sinter k1 k2 | 返回给定所有集合的交集 |
SINTERSTORE destination key1 [key2] | sinterstore destkey k1 k2 | 返回给定所有集合的交集并存储在 destination 中 |
SUNION key1 [key2] | sunion k1 k2 | 返回所有给定集合的并集 |
SUNIONSTORE destination key1 [key2] | sunionstore destkey k1 k2 | 所有给定集合的并集存储在 destination 集合中 |
sadd k1 tom sean peter ooxx tom
smembers k1
srem k1 ooxx
smembers k1
sadd k2 1 2 3 4 5
sadd k3 4 5 6 7 8
# 交集
sinter k2 k3
# 把交集存到目标dest中
sinterstore dest k2 k3
smembers dest
# 并集
sunion k2 k3
# 把交集存到目标dest中
sunionsotre dest k2 k3
smembers dest
# 差集,k2比k3多的元素,后边做为前边的参考
sdiff k2 k3
# 差集,k3比k2多的元素,后边做为前边的参考
sdiff k3 k2
# 存入用户:4个
sadd k1 tom sean peter ooxx
# 随机抽取3,人不能重复
srandmember k1 3
# 随机抽取3,2可以重复
srandmember k1 -3
# 礼物>人数,随机抽取3,人能重复
srandmember k1 -20
# 抽取1个
spop k1
还没有评论,来说两句吧...