广东省建设监理协会网站 - 首页,企鹅号个人自媒体平台注册,没有网站可以做哪些互联网广告推广,知彼网络网站建设redis 数据结构
动态字符串SDS 优点
获取字符串长度的时间复杂度O(1)
支持动态扩容#xff0c;减少内存分配次数
新字符串小于1M – 新空间为扩展后字符串长度的两倍 1 新字符串大于1M – 新空间为扩展后字符串长度 1M 1. 内存预分配
二进制安全#xff08;记录了字符…redis 数据结构
动态字符串SDS 优点
获取字符串长度的时间复杂度O(1)
支持动态扩容减少内存分配次数
新字符串小于1M – 新空间为扩展后字符串长度的两倍 1 新字符串大于1M – 新空间为扩展后字符串长度 1M 1. 内存预分配
二进制安全记录了字符串长度
IntSet IntSet升级流程 Dict 扩容
条件
哈希表的LoadFactor(负载因子) 1 且服务器没有执行bgsave 或者bgrewriteaof等后台进程负载因子 5
收缩
条件 负载因子小于0.1
rehash ZipList 特殊的“双端链表具备双端链表的许多特性” [为了节省内存设计]
由一系列特殊编码的连续内存块组成可以在任意一端以O(1)时间复杂度进行压入/弹出操作。 ZipList的连锁更新问题
ZipList的每个Entry都包含previous_entry_length来记录上一个节点的大小
前一节点的长度小于254字节previous_entry_length 1个字节前一节点的长度大于254字节previous_entry_length 5个字节
QuickList
每个节点是一个ZipList的双端链表可以对节点的ZipList做压缩。 list-max-ziplist-size:
list-compress-depth [控制首尾不压缩的节点个数] SkipList RedisObject