欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

浅谈redis数据结构之集合

程序员文章站 2022-07-13 11:12:45
...

1. 集合

       集合(set)类型也是用来保存多个字符串元素,但和列表类型不一样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过索引下标获取元素。极限情况,一个集合最多可以存储2 ^ 32 - 1个元素。

       假设集合user:1:follow包含着 "it"、"music"、"his"、"sports"四个元素,如下图所示:

浅谈redis数据结构之集合
            
    
    博客分类: Redis redis集合 

       

       Redis除了支持集合内的增删改查,同时还支持多个集合取交集、并集、差集。合理地使用好集合类型,能在实际开发中解决很多实际问题。

 

2. 相关命令

  • 集合内的操作命令

浅谈redis数据结构之集合
            
    
    博客分类: Redis redis集合 

 

  • 集合间的操作命令

浅谈redis数据结构之集合
            
    
    博客分类: Redis redis集合 

 

浅谈redis数据结构之集合
            
    
    博客分类: Redis redis集合 

 

  • 集合命令的时间复杂度

浅谈redis数据结构之集合
            
    
    博客分类: Redis redis集合 

 

3. 内部编码

       集合类型的内部编码有两种,如下表所示:

内部编码 说明
整数集合(intset) 当集合中的元素都是整数且元素个数小于set-max-intset-entries配置(默认512个)时,Redis会选用intset来作为集合的内部实现,从而减少内存的使用。
哈希表(hashtable) 当集合类型无法满足intset的条件时,Redis会使用hashtable作为集合的内部实现。

 

       由于篇幅所限,这里就不掩饰元素个数超过默认配置的场景了,具体示例如下图所示:

浅谈redis数据结构之集合
            
    
    博客分类: Redis redis集合 

 

4. 后续

       本文介绍了Redis中的集合的一些基本命令,包括集合内部的操作命令和集合之间的操作命令,其次还介绍了集合的内部编码转换。

       下面一篇文章会单独研究下以用户行为标签为主的应用场景,整理中.......

相关标签: redis集合