`

浅谈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数据结构服务器

    Redis是一款开源的、高性能的...Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。 对于这些数据类型,你可以执行原子操作

    go&redis数据结构的底层实现.docx

    go&redis数据结构的底层实现.docx

    Redis数据结构.pptx

    针对Redis的高级数据结构PPT。该PPT一共14页,介绍了Zset的数据结构类型,以及跳表的数据结构。简单阐述了BitMap,HLL,Bloom Filter的原理以及一些常用的指令。针对Bloom Filter有一些自己的见解以及分析

    3.Redis数据类型之List类型

    3.Redis数据类型之List类型

    redis数据结构

    自己整理的redis自定义的数据结构,对理解redis运行的内部原理会有所帮助

    数据结构Redis中数据类型对应的数据结构.pdf

    数据结构 数据结构Redis中数据类型对应的数据结构 中数据类型对应的数据结构 Redis Redis 是⼀种键值(Key-Value)数据库。相对于关系型数据库(⽐如 MySQL),Redis 也被叫作⾮关系型数据库。 像 MySQL 这样的关系...

    Redis数据结构与对象总结

    Redis数据结构与对象总结 数据结构与对象 简单动态字符串 SDS简介 SDS与C字符串的区别 常数复杂度获取字符串长度 O(n) O(1) 杜绝缓冲区溢出 修改字符串长度时内存重分配 空间预分配:对字符串进行增长操作时...

    01-VIP-Redis核心数据结构与核心原理1

    Nginx也是采用IO多路复用原理解决C10K问题# 查看redis支持的最大连接数,在redis.conf文件中可修改,# maxclients 10000其

    01-Redis核心数据结构实战与高性能原理剖析-ev.rar

    01-Redis核心数据结构实战与高性能原理剖析_ev.rar01-Redis核心数据结构实战与高性能原理剖析_ev.rar01-Redis核心数据结构实战与高性能原理剖析_ev.rar01-Redis核心数据结构实战与高性能原理剖析_ev.rar01-Redis核心...

    redis数据结构.pdf

    下面列出了所有redis支 持的数据结构,下文会分别对这些结构进行介绍: 二进制安全字符串 队列(lists):基于插入顺序有序存储的字符串元素集合。主要 是链式的list。 集(sets):元素唯一的、无序的字符串元素集合。 ...

    十五分钟介绍-Redis数据结构.pdf

    十五分钟介绍-Redis数据结构

    Redis基础数据结构.pptx

    详细分析redis设计及实现原理 详细分析redis设计及实现原理

    详解redis数据结构之sds

    详解redis数据结构之sds  字符串在redis中使用非常广泛,在redis中,所有的数据都保存在字典(Map)中,而字典的键就是字符串类型,并且对于很大一部分字典值数据也是又字符串组成的。以下是sds的具体存储结构: ...

    redis2json:以JSON格式导出Redis数据

    例如: ./redis_to_json.py | gzip > redis_backup.json.gz这对于您正在使用但又不想丢失数据的应用程序也很不错,因为Redis RDB文件并不总是那么方便。注意事项和注意事项u()中的Unicode支持仅适用于Python2.x。...

    redis数据结构基础知识及案列(每个数据结构一个案例).zip

    redis数据结构基础知识及案列(每个数据结构一个案例)

    Redis 数据结构1

    Redis
底层网络模型为单线程+epoll,也就是说,发送至
Redis
的命令是执的若采用直接扩容的方式,那么当遇到巨大的哈希表时,数据的复制将花费很长时间

    redis基础数据结构讲解

    本文主要介绍redis的几种数据类型和适用场景。会列出简单例子,具体的redis函数不会一一介绍。不过这些简单的例子基本上满足80%以上的项目。

    Redis入门教程.docx

    10.redis数据结构 – 集合 11.redis数据结构 – 有序集合 12.redis数据结构 – 哈希 13.聊聊redis持久化 – 两种方式 14.聊聊redis持久化 – RDB 15.聊聊redis持久化 – AOF 16.聊聊redis持久化 – AOF重写 17.聊聊...

    redis命令集合,redis命令详解

    redis命令集合,redis命令详解 适合全体类型的命令 EXISTS key 判断一个键是否存在;存在返回 1;否则返回0; DEL key 删除某个key,或是一系列key;DEL key1 key2 key3 key4 TYPE key 返回某个key元素的数据类型 ( none:...

Global site tag (gtag.js) - Google Analytics