Redis
文章平均质量分 94
去图书馆睡还不如在宿舍睡
这个作者很懒,什么都没留下…
展开
-
Redis数据结构——压缩列表
6、压缩列表压缩列表(ziplist)使列表键和哈希键的底层实现之一,当一个列表键只包含少量列表项,并且每个列表项要么就是小整数值,要么就是长度比较短的字符串那么Redis就会使用压缩列表来做列表键的底层实现。另外,当一个哈希键只包含少量键值对,并且每个键值对的键和值要么是小整数值,要么是长度比较短的字符串,那么Redis就会使用压缩列表来做哈希键的底层实现。6.1、压缩列表的构成压缩列表是Redis 为了节约内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型数据结构,一个压缩列表可以包含任意原创 2021-12-04 20:24:05 · 948 阅读 · 0 评论 -
Redis数据结构——跳跃表,整数集合
4、跳跃表跳跃表是一种有序的数据结构,它通过每个节点中维持多个指向其他节点的指针来实现,从而达到快速访问节点的目的。跳跃表支持平均和最坏复杂度的节点查找,还可以通过顺序性操作来批量处理节点。在大部分情况下,跳跃表的效率可以和平衡树相媲美,并且因为跳跃表的实现比平衡树要来得更简单,所以不少程序使用跳跃表来代替平衡树。Redis使用跳跃表作为有序集合键的底层实现之一,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员时比较长的字符串时,Redis就会使用跳跃表来作为有序集合的底层实现。4原创 2021-12-04 20:12:09 · 210 阅读 · 0 评论 -
Redis数据结构——链表和字典
2、链表链表提供了高效的节点重排能力,以及顺序性节点的访问方式,并且可以通过增删节点来灵活的调整链表的长度。作为一种常用的数据结构,链表内置在很多高级的编程语言里面,因为Redis使用的C语言并没有内置这种数据结构,所以Redis自己构建了自己的链表实现。链表在Redis中的应用十分广泛,比如列表键的底层实现之一就是链表,当一个列表键包含了数量比较多的元素时,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为列表键的底层实现,除了列表键的底层是链表外,发布与订阅,慢查询,监视器等功原创 2021-12-04 16:50:55 · 675 阅读 · 0 评论 -
Redis数据结构——简单动态字符串
1、简单动态字符串redis没有直接用C语言传统的字符串(以空字符结尾的字符数组)表示,而是自己构建了一种名为简单动态字符串(SDS)的抽象类型,并将SDS用作redis的默认字符串表示。在redis里面,C字符串只会作为字符串字面量用在一些无需对字符串值修改的地方,比如打印日志:redisLog(REDIS_WAINING,"Rdeis is now ready to exit,bye bye...")当redis需要的不仅仅是一个字符串字面量,而是一个可以被修改的字符串值时,redis就会用S原创 2021-11-19 10:33:07 · 662 阅读 · 0 评论