美文网首页
Redis--集合

Redis--集合

作者: Audience0 | 来源:发表于2018-07-03 20:45 被阅读0次

集合(set)类型也是用来保存多个字符串元素的,但是和列表不一样的是,集合中不允许有重复元素,并且集合中元素是无序的,不能通过索引下标获取元素。

一个集合最多可以存储2^32 - 1个元素,Redis除了支持集合的增删改查,同时还支持多个集合取交集,并集,差集。

命令:

-- 添加元素

    sadd key element [element...] 返回添加成功的元素个数

-- 删除元素

    srem key element [element...] 返回成功删除元素个数

-- 计算元素个数

    scard key 

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

-- 判断元素是否在集合中

    sismember key element

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

    srandmember key [count]

    [count]可选项,如果不写默认为1

-- 随机从集合中弹出元素

    spop key

    Redis 3.2之后,spop 也支持[count] 参数。

    srandmember和spop都是随机从集合选出元素,两者不同的是spop命令执行后,元素会从集合中删除,而srandmember不会。

-- 获取所有元素

    smembers key

    注意:smembers 和 lrange、hgetall都属于比较重的命令,元素过多,可能会阻塞Redis,可以用sscan来完成

集合间操作:

-- 求多个集合的交集

sinter key [key...]

-- 求多个集合的并集

sunion key [key...]

-- 求多个集合的差集

sdiff key [key...]

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

sinterstore destination key [key...]

sunionstore destination key [key...]

sdiffstore destination key [key...]

内部编码:

-- intset(整数集合):当集合汇总元素都是整数且元素个数小于set-max-intset-entries配置(默认512)时,Redis会选用intset来作为集合的内部实现,而减少内存使用

-- hashtable(哈希表):当集合类型无法满足intset要求的时候,Redis会使用hashtable作为集合的内部实现

相关文章

  • Redis--集合

    集合(set)类型也是用来保存多个字符串元素的,但是和列表不一样的是,集合中不允许有重复元素,并且集合中元素是无序...

  • Redis--有序集合

    有序集合:有序集合保留了集合不能有重复元素的特性,但不同的是,有序集合中的元素可以通过设置一个分数(score)来...

  • Redis--整数集合

    应用范围 1.是集合键的底层实现,当集合只包含整数值元素,且数量不多的时候使用。 整数集合的实现 1.集合元素的编...

  • Redis--复制

    Redis--复制 复制功能的实现 1.通过SLAVEOF命令可以让从服务器同步主服务器的数据。 旧版复制实现的机...

  • Redis--哈希

    哈希类型是指键值本身又是一个键值对结构 -----------------------------命令 ---设置...

  • Redis--命令

    设值 获值 设置过期时间(单位:s) 设置过期时间(单位:s) 设置过期时间(单位:ms) 设置UNIX过期时间戳...

  • Redis--列表

    列表(list)类型是用来存储多个有序的字符串,一个列表最多可以储存2^32 - 1个元素,列表是比较灵活的数据结...

  • redis--使用

    一:redis中的数据类型 redis的数据存储:key=value 键值对 key<键>的数据类型:字符串 va...

  • redis--使用

    一:redis中的数据类型 redis的数据存储:key=value 键值对 key<键>的数据类型:字符串 va...

  • Redis--字典

    字典的应用范围 1.redis的DB就是一个字典 2.redis的hash键,当包含的键值较多,又或者键值对中的元...

网友评论

      本文标题:Redis--集合

      本文链接:https://www.haomeiwen.com/subject/nqkjuftx.html