Redis基本命令使用::set篇

本文深入讲解Redis集合类型的使用,包括创建、查询、修改等操作,以及集合间的并集、差集和交集运算,适用于初学者和进阶用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis有6大基本类型,分别是字符串(String)、列表(List)、集合(set)、哈希结构(hash)、有序集合(zset)和基数(HyperLogLog)

redis在线体验地址:http://try.redis.io/

集合(Set)

介绍:

Redis的集合就是一个简单的字符串集合,该集合是无序的,且集合内的元素都是唯一的,也就是集合内不会出现重复元素。Redis中的集合是通过哈希表来实现的,所以获取集合中元素的时间复杂度为O(1)。

创建缓存

  1. 创建一个集合缓存,为集合新增元素

    • 命令格式:sadd key member [member ...]

    • 🌰

      sadd s1 1 2 3 0 -1 redis mongodb zookeeper
      
      ---
      创建集合s1,元素为:1 2 3 0 -1 redis mongodb zookeeper
      

移除元素

  1. 随机移除集合中的一个元素并返回这个元素

    • 命令格式:spop key

    • 🌰

      spop s1
      
      ---
      移除之后,集合s1中就没有这个元素了
      
  2. 指定移除集合中一个或多个元素

    • 命令格式:srem key member [member ...]

    • 🌰

      srem s1 -1 0 99
      
      ---
      将元素-1、0、99从集合s1中移除,仅移除集合中存在的元素
      

查询集合

  1. 查询集合中元素个数

    • 命令格式:scard key

    • 🌰

      scard s1
      
      ---
      返回集合s1中元素总个数
      
  2. 返回集合中所有元素

    • 命令格式:smembers key

    • 🌰

      smembers s1
      
      ---
      返回集合s1中所有的元素
      
  3. 随机返回集合中的一个或多个元素

    • 命令格式:srandmember key [count]

    • 🌰

      srandmember s1 10
      
      ---
      随机返回集合s1中的10个元素,若不指定数量,则默认返回一个元素
      
  4. 迭代集合中的元素

    • 命令格式:sscan key cursor [MATCH pattern] [COUNT count]

    • 🌰

      sscan s1 0 match re* count 1
      
      ---
      迭代集合中re开头的所有元素,每次返回1个
      
  5. 判断元素是否存在于集合中

    • 命令格式:sismember key member

    • 🌰

      sismember s1 99
      
      ---
      若99存在于s1中,则返回1,不存在则返回0
      

多集合之间操作

  1. 查看多个集合的差集

    • 命令格式:sdiff key [key ...]

    • 🌰

      sdiff s1 s2 s3
      
      ---
      返回集合s1相对于s2、s3的差集,也就是只返回s1中所有不存在于s2、s3中的所有元素
      
  2. 多个集合的差集存储到指定集合中

    • 命令格式:sdiffstore destination key [key ...]

    • 🌰

      sdiffstore ds1 s1 s2 s3
      
      ---
      将s1中不存在于s2、s3中的元素存储到集合ds1中
      
  3. 查看多个集合的并集,去重

    • 命令格式:sunion key [key ...]

    • 🌰

      sunion s1 s2 s3
      
      ---
      将集合s1、s2、s3的元素合并去重后返回,所有元素均唯一
      
  4. 多个集合的并集存储到指定集合中

    • 命令格式:sunionstore destination key [key ...]

    • 🌰

      sunionstore us1 s1 s2 s3
      
      ---
      集合s1、s2、s3的并集存储到集合us1中,并返回集合us1中的元素个数
      
  5. 将一个集合中的某元素移动到另一个集合中

    • 命令格式:smove source destination member

    • 🌰

      smove s1 s2 -2
      
      ---
      将s1中的元素-2移动到集合s2中,若s2不存在,则自动创建
      
  6. 查看多个集合的交集

    • 命令格式:sinter key [key ...](interp)

    • 🌰

      sinter s1 s3
      
      ---
      返回集合s1和集合s3的交集,也就是两个集合中都存在的数据
      
      实际应用:查看两个人的共同好友;微信里查看和好友的共同群
      
  7. 多个集合的交集存储到指定集合中

    • 命令格式:sinterstore destination key [key ...]

    • 🌰

      sinterstore is1 s1 s3
      
      ---
      将s1和s3的交集元素存储到集合is1中
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值