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

你可能感兴趣的:(Redis,redis,set)