Redis
文章平均质量分 77
Untara
小白成长日记
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis底层数据结构(六)--压缩列表
压缩列表(ziplist)是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么是小整数值,要么就是长度比较短的字符串,Redis就会使用压缩列表来做列表键的底层实现。压缩列表的构成压缩列表是Redis为了节约内存而开发的,是由一系列编码的联系内存块组成的顺序性数据结构。一个压缩列表可以包含多个节点(entry),每个节点可以保存一个字节数组或者一个整数值。压缩列表的各个组成部分压缩列表各个组成部分的详细说明压缩列表节点的构成每个压缩列表节点可以保存一个字节数.原创 2021-01-21 15:30:41 · 168 阅读 · 0 评论 -
Redis底层数据结构(五)--整数集合
整数集合是集合键的底层实现之一。整数集合的实现整数集合(intset)是Redis用于保存整数值的集合抽象数据结构,可以保存类型为int16_t,int32_t或者int64_t的整数值,并且保证集合中不会出现重复元素。contents数组是整数集合的底层实现:证书集合的每个元素都是contents数组一个数组项(item),各个项在数组中按值的大小从小到大有序地排列,并且数组中不包含任何重复项。length属性记录了整数集合包含的元素数量,即contents数组的长度。虽然ints原创 2021-01-21 15:17:25 · 166 阅读 · 0 评论 -
Redis底层数据结构(四)--跳跃表
跳跃表(skiplist)是一种有序数据结构,通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。跳跃表支持平均O(logN),最坏O(N)复杂度的节点查找,还可以通过顺序性操作来力量处理节点。在大部分情况下,跳跃表的效率可以和平衡树相媲美,并且因为跳跃表的实现比平衡树更为简单,所以有不少程序都使用跳跃表来代替平衡树。Redis使用跳跃表作为有序集合键的底层实现之一。跳跃表的实现Redis跳跃表有zskiplistNode和zskiplist两个结构定义,zskiplis原创 2021-01-20 20:28:57 · 207 阅读 · 0 评论 -
Redis底层数据结构(三)--字典
字典,又称符号表,关联数组或者映射,是一种用于保存键值对(key-value)的抽象数据结构。字典在Redis里的应用:Redis数据库就是使用字典来作为底层实现的,对数据库的增,删,改,查操作也是建立在对字典的操作之上的。除了表示数据库之外,字典还是哈希键的底层实现之一。字典的实现Redis的字典使用哈希表作为底层实现,一个哈希表里面可以有多个哈希表节点,每个哈希表节点就保存了字典中的一个键值对。哈希表结构定义:table属性是一个数组,数组中每个元素都是指向dictEntry原创 2021-01-20 17:05:35 · 188 阅读 · 0 评论 -
Redis底层数据结构(二)--链表
链表实现了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活调整链表的长度,是Redis列表键的底层实现。Redis构建了自己的链表实现。除了链表键之外,发布与订阅,慢查询,监视器等功能也用到了链表,Redis服务器本身还使用链表来保存多个客户端的状态信息,以及使用链表来构建客户端输出缓冲区(output buffer)链表和链表节点的实现链表节点的结构:多个listNode可以通过prev和next指针组成双端链表:由多个listNode组成的双端链表链表结构原创 2021-01-20 10:53:00 · 147 阅读 · 0 评论 -
Redis底层数据结构(一)--简单动态字符串
简单动态字符串(simple dynamic string,SDS)比如:127.0.0.1:6379> set msg helloredisOKRedis将在数据库中创建一个新的键值对,其中:键值对的键是一个字符串对象,对象的底层实现是一个保存着字符串"msg"的SDS。 键值对的值是也是一个字符串,对象的底层实现是一个保存着字符串"helloredis"的SDS127.0.0.1:6379> rpush devtools "java" "php" "c"(inte原创 2021-01-20 09:53:56 · 213 阅读 · 0 评论 -
Redis对象系统
beizhu原创 2021-01-18 21:06:24 · 144 阅读 · 0 评论
分享