`

浅谈redis数据结构之集合

阅读更多

1. 集合

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

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

       

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

 

2. 相关命令

  • 集合内的操作命令

 

  • 集合间的操作命令

 

 

  • 集合命令的时间复杂度

 

3. 内部编码

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

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

 

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

 

4. 后续

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

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

分享到:
评论

相关推荐

    浅谈redis在项目中的应用

    5. 数据结构操作:Redis支持多种数据结构操作,包括字符串、列表、集合、有序集合和哈希表。在插入信息和获取信息的示例中,演示了如何使用列表数据结构存储和读取数据。 6. 数据持久化:Redis支持RDB和AOF两种持久...

    浅谈Redis数据库的键值设计

    Redis作为一个高性能的键值存储系统,其丰富的数据结构(如字符串、哈希、列表、集合、有序集合等)为开发者提供了极大的灵活性。与关系型数据库不同,Redis允许开发者直接操作数据结构,从而在设计键值时需要更深入...

    浅谈Redis在分布式系统中的协调性运用

    Redis,作为一个高性能的键值存储系统,因其丰富的数据结构和高效的内存操作,常被用于实现分布式环境下的协调任务。本文将深入探讨Redis如何在分布式系统中发挥协调作用,尤其是在进程调度、线程管理和消息队列中的...

    Redis基础笔记总结

    #### 三、Redis迭代演化和Redis7新特性浅谈 - **时间推移与版本升级**: - 官方博客: - 版本迭代历程中的一些重要里程碑。 - **Redis7.0新特性**: - **Redis Functions**: 提供函数调用的能力,扩展Redis的功能...

    算法文档无代码浅谈跳跃表的相关操作及其应用

    跳跃表是一种可以用来替代平衡树的数据结构,它通过在基本链表的基础上增加了多层索引以加快搜索、插入和删除操作的速度。跳跃表不仅能够提供与平衡树类似的查询性能,而且实现起来相对简单,维护成本较低。 在详细...

    浅谈电商支撑系统中分布式缓存管理技术的研究与实现.pdf

    它支持多种数据结构,如字符串、哈希、列表、集合等,适用于不同的应用场景。分布式缓存的主要配置方式有主从模式、哨兵模式和集束模式。 主从模式允许数据有备份,可通过从节点查询操作来完成,提供数据的高可用性...

    nosql数据库的应用探讨

    Redis支持多种数据结构,如字符串、哈希表、列表、集合和有序集合等。由于数据存储在内存中,因此Redis具有非常高的读写速度。此外,Redis还支持数据持久化功能,可以通过定期快照或追加日志的方式将数据保存到磁盘...

Global site tag (gtag.js) - Google Analytics