搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
你好赵伟
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
ROS2——node节点(七)_ros2 node
2
AD9767的DDS任意信号发生器设计记录_ad9787的dataclk
3
Django验证码库之django-simple-captcha
4
MacOS和Windows到底哪个更适合编程?_win生态和mac生态在开发者中的比较
5
机器人选择电机_移动机器人一般都用什么电机
6
了解Windows系统驱动程序--数字签名_未经确认的设备 找不到驱动程序
7
[职场] 鲶鱼效应是什么意思 鲶鱼效应在企业管理中有什么作用 #经验分享#学习方法#职场发展_如何理解企业管理中的鲶鱼效应
8
【数据结构-前缀哈希】力扣1124. 表现良好的最长时间段
9
Datawhale AI夏令营第四期的学习活动—AIGC Task01笔记
10
史上最全 Git 图文教程(非常详细)零基础入门到精通,收藏这一篇就够了
当前位置:
article
> 正文
redis列表若干记录
作者:你好赵伟 | 2024-08-17 06:25:42
赞
踩
redis列表若干记录
2、列表
ziplist
ziplist参数
entry结构
entry-data:节点存储的元素
prelen:记录前驱节点长度
encoding:当前节点编码格式
encoding
encoding属性 使用多个子节点存储节点元素长度,这种多字节数据存储在计算机内存中或者进行网络传输的时的字节顺序称为字节序。
大端字节序:低字节数据保存在内存高地址位置,高字节数据保存在内存低地址位置。
小端字节序:低字节数据保存在内存低地址位置,高字节数据保存在内存高地址位置。
CPU处理指令通常按照内存地址增长方向执行的。若使用小端字节序,cpu执行效率会更高。而ziplist就采用小端字节序,所以它有
CPU执行优势
。
ziplist查找元素
从某个节点开始查找,计算当前节点属性(encoding、lensize、len)
如果当前节点时字符串编码,则对比传入的内容,有则返回
如果节点元素是数值编码,并且还没对查找内容进行编码,则先编码再对比(不需要比对encoding了)
对比结束不符合就跳转到下一个节点继续比对
ziplist插入元素
计算前驱节点长度并放入prelen中
对插入元素进行内容编码,计算编码后的长度(req)
计算prelen长度
计算后驱节点长度(nextdiff)
重新为ziplist分配内存(
当前长度+req+nextdiff
)
将插入位置后面所有的节点后移
修改后驱节点的prelen属性
更新
zltail
属性
更新
zllen
属性
ziplist级联更新(极端情况)
会涉及大量的内存拷贝,所以这个时候应该采用quicklist
quicklit
quicklist通过将一个ziplist拆分为多个短的ziplist,避免插入或删除元素时候导致大量的内存拷贝。
当链表很长的时候,中间节点访问效率较低时,redis会对中间节点进行压缩节省内存空间。
将元素插入quicklist头部
判断头节点的ziplist是否已满,未满则直接插入
若已满则创建新的节点,将元素插入新节点的ziplist中
ziplist结构紧凑,使用一整块内存存储链表的所有数据,其只有一种
编码格式
OBJ_ENCODING_QUICKLIST
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/你好赵伟/article/detail/991558
推荐阅读
article
2019年中总结,400道一线大厂高频精选
面试题
合集(
JVM
+
Spring
+
RabbitMQ
+Myb...
这是一份涵盖Java集合、
JVM
、
Mybatis
、
Redis
、
RabbitMQ
、微服务和
分布式
领域的2019年中大厂面试...
赞
踩
article
Python
连接
Mysql
、
MongoDB
、
Redis
、Doris、kafka方法汇总_pyspa...
Python
连接
Mysql
、
MongoDB
、
Redis
、Doris方法汇总yamlsqlalchemyyamlwith...
赞
踩
article
数据存储方案选择:ES、
HBase
、
Redis
、
MySQL
与
MongoDB
的应用场景分析_
es
re...
本文旨在探讨ES、
HBase
、
Redis
、
MySQL
和
MongoDB
这五种技术的核心特性和优势,通过分析它们在不同应用场...
赞
踩
article
某马
2024SpringCloud
微
服务
开发与实战
bug
记录与
微
服务
知识拆解(MybatisPlu...
2024最新SpringCloud
微
服务
开发与实战
bug
记录与
微
服务
知识拆解 Day4背景颜色是槐花黄绿_spring...
赞
踩
article
redis
和
mysql
增量
同步
_
Redis
主从复制
的
全量和增量
同步
介绍...
全量
同步
:1.slave服务器连接到master服务器,发送SYNC命令slave服务器通过 syncWithMaste...
赞
踩
article
【
Redis
】
网络
模型
_
redis
网络
模型
...
Redis
(Remote Dictionary Server)是一个开源的高性能键值对存储系统,广泛用于各种
网络
应用中作...
赞
踩
article
Redis 网络
模型
_
redis
网络
模型
...
Redis 网络
模型
_
redis
网络
模型
redis
网络
模型
redis
网络
模型
背景 1....
赞
踩
article
Redis
命令
执行
过程
(上)...
今天我们来了解一下
Redis
命令
执行
的
过程
。在之前的文章中《当
Redis
发生高延迟时,到底发生了什么》我们曾简单...
赞
踩
article
Redis
客户端
与
服务器
连接
流程实例...
Redis
客户端
连接
服务器
完整的流程redis sever 启动时,会把 AE_READABLE 事件关联至 acce...
赞
踩
article
【
Redis
】网络
IO
-
事件驱动
框架源码分析(
单线程
)
_
单线程
如何实现
事件驱动
...
aeEventLoop初始化在server.c文件的initServer函数中,对aeEventLoop进行了初始化:调...
赞
踩
article
大数据-48
Redis
通信协议原理
RESP
事件
处理机制原理 文件
事件
时间
事件
Reactor
...
上节内容中,我们看了
Redis
的缓存机制、淘汰机制,知道了LRU、LFU等内容,本节学习
Redis
的通信原理
RESP
,事...
赞
踩
article
【业务功能篇75】微服务项目环境搭建
docker
-
mysql
-
redis
-SpringCloudAl...
SpringCloudAlibaba GitHub地址:https://github.com/alibaba/sprin...
赞
踩
article
Redis
支持
的
五种主要
数据结构
_
java
redis
存储列表用什么
数据结构
比较合适...
Redis
,作为一个高性能
的
键值对数据库,不仅支持简单
的
字符串类型数据,还提供了丰富
的
数据结构
来满足各种复杂场景
的
需求。...
赞
踩
article
Redis
(三)
灾备
部署
_
redis
灾备
方案...
本文详细介绍了如何搭建
Redis
热备集群,包括升级版本、创建主-备复制、流量切换等步骤。同时,利用
Redis
-Shake...
赞
踩
article
54
-
黑马
点评
(
remark
)-
Redis
-单节点_
黑马
点评
redis
课程
大纲...
笔记内容来源与
黑马
程序员教学视频这一块我们会使用
redis
共享session来实现通过本章节,我们会理解缓存击穿,缓存穿...
赞
踩
article
基于
【
Redis
】的
黑马
点评
项目
...
基于
Redis
的
黑马
点评
项目
。_
黑马
点评
项目
黑马
点评
项目
...
赞
踩
article
八股文完:
消息
队列
&
Redis
&
Nginx
_
nginx
八股文...
八、MQ
消息
队列
1、场景作用削峰填谷,异步解耦。2、如何保证
消息
不被重复消费呢?这个问题可以换个思路,保证
消息
重复消费...
赞
踩
article
docker
搭建
redis
集群_
docker
搭建
redis
集群...
2)sentinel给所有其它slave发送slaveof 192.168.150.101 7002 命令,让这些节点成...
赞
踩
article
Redis
Pipelining
底层
原理
分析及实践_
redis
pipeline
原理
...
Redis
是一种基于客户端-服务端模型以及请求/响应的TCP服务。在遇到批处理命令执行时,
Redis
提供了Pipelin...
赞
踩
article
未
授权
漏洞
复现
mysql
,
Redis
,
Hadoop
_
hadoop
未
授权
访问
漏洞
...
未
授权
漏洞
复现
mysql
Redis
Hadoop
vulhub_
hadoop
未
授权
访问
漏洞
hadoop
未
授权
访问
漏洞
...
赞
踩
相关标签
mongodb
redis
python
elasticsearch
hbase
数据库选型
spring cloud
微服务
bug
redis 和mysql 增量同步
java
缓存
database
后端
数据库
大数据
lua
分布式
docker
mysql
nacos注册中心配置中心
OpenFegin远程调用
网关Gateway