• 2024-11-21Redis 的 Quicklist 技术竟然能让内存占用降低 50%!
    《Redis的Quicklist技术竟然能让内存占用降低50%!》在当今的互联网时代,数据的存储和管理变得至关重要。Redis作为一款高性能的内存数据库,被广泛应用于各种场景中。而Redis的Quicklist技术更是为我们带来了惊喜,据说它能够让内存占用降低50%!那么,Quicklist究竟是何方神圣
  • 2024-10-22Redis Quicklist 竟让内存占用狂降50%?
    0引言Redis作为一种高效的内存型键值数据库,得益于其底层数据结构的精妙设计。对于List类型的数据,Redis从早期的简单链表(linkedlist),到压缩列表(ziplist),再到如今的quicklist和listpack,不断优化以平衡内存利用率和性能。这篇文章将深入剖析Redis的quicklist和listpack
  • 2024-09-19Redis基础数据结构之 quicklist 和 listpack 源码解读
    目录标题quicklist为什么要设计quicklist?quicklist特点ziplistquicklist数据结构listpacklistpack是什么?listpack数据结构ziplist干啥去了?为什么有listpack?什么是ziplist的连锁更新?listpack如何避免连锁更新?listpack替代了quicklist吗?quicklist为什么要设计qu
  • 2024-02-26redis自学(5)QuickList
    问题1:ZipList虽然节省内存,但申请内存必须是连续空间,如果内存占用较多,申请内存效率很低。怎么办?为了缓解这个问题,我们必须限制ZipList的长度和entry大小。问题2:但是我们要存储大量数据,超出了ZipList最佳的上限怎么办?我们可以创建多个ZipList来分片存储数据。问题3:数据拆分后比
  • 2024-02-26redis-深入分析redis之listpack,取代ziplist?
    ziplist的不足主要在于当ziplist中元素个数过多,它的查找效率就会降低。而且如果在ziplist里新增或修改数据,ziplist占用的内存空间还需要重新分配;更糟糕的是,ziplist新增某个元素或修改某个元素时,可能会导致后续元素的prevlen占用空间都发生变化,从而引起连锁更新问题,导致
  • 2023-12-06Redis
    Redis笔记一、常用命令登录redis-cliauthpassword二、数据类型stringString的数据结构为简单动态字符串(SimpleDynamicString,缩写SDS)。是可以修改的字符串,内部结构上类似于Java的ArrayList,采用分配冗余空间的方式来减少内存的频繁分配。动态大小:SDS可以根据存储的字
  • 2023-07-01Redis数据结构——快速列表(quicklist)1
    Redis数据结构——快速列表(quicklist)一、什么是quicklistquicklist是Redis3.2版本以后针对链表和压缩列表进行改造的一种数据结构,是zipList和linkedList的混合体,相对于链表它压缩了内存。进一步的提高了效率。quicklist其实就是简单的双链表,但每个双链表节点中保存
  • 2023-07-01Redis数据结构——快速列表(quicklist)
    Redis数据结构——快速列表(quicklist)一、什么是quicklistquicklist是Redis3.2版本以后针对链表和压缩列表进行改造的一种数据结构,是zipList和linkedList的混合体,相对于链表它压缩了内存。进一步的提高了效率。quicklist其实就是简单的双链表,但每个双链表节点中保存
  • 2023-04-22redis数据结构
    ZipListziplist是一种特殊的“双向链表”,由一系列特殊编码的连续内存组成,可以在任意一端进行压入和弹出。ZipList的结构ZipListEntry的结构entry并不像普通双向链表节点用两个指针指向前后节点,为了节省空间。previous_entry_length:前一个节点的长度,占1个或5个字节如果
  • 2022-12-17redis底层数据结构之快速列表(quicklist)
    快速列表(quicklist)redis3.2版本之前,List类型数据使用的底层数据结构是压缩列表(ziplist)或双向链表(linkedlist),当列表元素个数比较少并且每个元素占用空间比较小时使
  • 2022-12-06Redis原理 - 对象的数据结构(SDS、Inset、Dict、ZipList、QuickList、SkipList、RedisObject)
    Redis数据结构1.SDSRedis是用C语言写的,但是对于Redis的字符串,却不是C语言中的字符串(即以空字符’\0’结尾的字符数组),它是自己构建了一种名为简单动态字符串(sim