redis基本数据结构----(三)集合

redis基本数据结构----(三)集合

1、定义

  • 集合(set)类型也是用来保存多个的字符串元素,但和列表类型不一
    样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过索引下标获取元素。
  • Redis除了支持集合内的增删改查,同时还支持多个集合取交集、并
    集、差集,合理地使用好集合类型,能在实际开发中解决很多实际问题。

2、基本命令

2.1集合内的操作

2.1.1添加元素

  • 返回结果为添加成功的元素个数

sadd key element [element …]

2.1.2删除元素

  • 返回结果为成功删除元素个数

    srem key element [element …]

2.1.3计算元素的个数

  • scard的时间复杂度为O(1),它不会遍历集合所有元素,而是直接用
    Redis内部的变量

    scard key

2.1.4判断元素是否在集合中

  • 如果给定元素element在集合内返回1,反之返回0

sismember key element

2.1.5随机从集合返回指定个数元素

  • [count]是可选参数,如果不写默认为1

srandmember key [count]

2.1.6 从集合随机弹出元素

  • spop操作可以从集合中随机弹出一个元素

spop key

2.1.7获取所有元素

smembers key

2.2集合之间的操作

  • 现有两个集合

  • 127.0.0.1:6379> sadd user:1:follow it music his sports
    (integer) 4
    127.0.0.1:6379> sadd user:2:follow it news ent sports
    (integer) 4

2.2.1求多个集合的交集

sinter key [key …]

127.0.0.1:6379> sinter user:1:follow user:2:follow

  1. “sports”
  2. “it”

2.2.2求多个集合的并集

suinon key [key …]

2.2.3求多个集合的差集

sdiff key [key …]

2.2.4将交集、并集、差集的结果保存

sinterstore destination key [key …]
suionstore destination key [key …]
sdiffstore destination key [key …]

3、常用集合命令时间复杂度

redis基本数据结构----(三)集合