当前位置: 首页 > news >正文

Redis数据结构-RedisObject

1.7 Redis数据结构-RedisObject

Redis中的任意数据类型的键和值都会被封装为一个RedisObject,也叫做Redis对象,源码如下:

1、什么是redisObject:
从Redis的使用者的角度来看,⼀个Redis节点包含多个database(非cluster模式下默认是16个,cluster模式下只能是1个),而一个database维护了从key space到object space的映射关系。这个映射关系的key是string类型,⽽value可以是多种数据类型,比如:
string, list, hash、set、sorted set等。我们可以看到,key的类型固定是string,而value可能的类型是多个。
⽽从Redis内部实现的⾓度来看,database内的这个映射关系是用⼀个dict来维护的。dict的key固定用⼀种数据结构来表达就够了,这就是动态字符串sds。而value则比较复杂,为了在同⼀个dict内能够存储不同类型的value,这就需要⼀个通⽤的数据结构,这个通用的数据结构就是robj,全名是redisObject。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Redis的编码方式

Redis中会根据存储的数据类型不同,选择不同的编码方式,共包含11种不同类型:

编号编码方式说明
0OBJ_ENCODING_RAWraw编码动态字符串
1OBJ_ENCODING_INTlong类型的整数的字符串
2OBJ_ENCODING_HThash表(字典dict)
3OBJ_ENCODING_ZIPMAP已废弃
4OBJ_ENCODING_LINKEDLIST双端链表
5OBJ_ENCODING_ZIPLIST压缩列表
6OBJ_ENCODING_INTSET整数集合
7OBJ_ENCODING_SKIPLIST跳表
8OBJ_ENCODING_EMBSTRembstr的动态字符串
9OBJ_ENCODING_QUICKLIST快速列表
10OBJ_ENCODING_STREAMStream流

五种数据结构

Redis中会根据存储的数据类型不同,选择不同的编码方式。每种数据类型的使用的编码方式如下:

数据类型编码方式
OBJ_STRINGint、embstr、raw
OBJ_LISTLinkedList和ZipList(3.2以前)、QuickList(3.2以后)
OBJ_SETintset、HT
OBJ_ZSETZipList、HT、SkipList
OBJ_HASHZipList、HT
http://www.lryc.cn/news/350193.html

相关文章:

  • Vue 中使用 el-date-picker 限制只能选择当天、当天之前或当天之后日期的方法详解
  • 系列介绍:《创意代码:Processing艺术编程之旅》
  • 深度学习设计模式之抽象工厂模式
  • K8s是什么?
  • 【网站项目】SpringBoot796水产养殖系统
  • Vue详细介绍
  • 声纹识别的对抗与防御
  • C++ QT设计模式总结
  • 洛谷 P3203:弹飞绵羊 ← 分块算法(单点更新、单点查询)
  • 程序验证之Dafny--证明霍尔逻辑的半自动化利器
  • Flutter 中的 SafeArea 小部件:全面指南
  • webpack生成模块关系依赖图示例:查看构建产物的组成部分 依赖关系图
  • Spacy的安装与使用教程
  • Pathlib,一个不怕迷路的 Python 向导
  • 详解绝对路径和相对路径的区别
  • C++二叉搜索树搜索二叉树二叉排序树
  • Java 自然排序和比较器排序区别?Comparable接口和Comparator比较器区别?
  • 【CV】opencv调用DIS/LK等计算光流,前一帧和当前帧写反了有什么影响?
  • C语言学习细节|C语言面向对象编程!函数指针如何正确使用
  • C语言简要(一)
  • 那些年我与c++的叫板(一)--string类自实现
  • 二刷算法训练营Day08 | 字符串(1/2)
  • 使用高防IP是应对网络安全的重要措施
  • 代码随想录-算法训练营day40【动态规划03:整数拆分、不同的二叉搜索树】
  • MySQL数据库中基本数据管理操作
  • 记录一下Hql遇到的零碎问题
  • Flutter 中的 TextField 小部件:全面指南
  • GPT-4o:全面深入了解 OpenAI 的 GPT-4o
  • 2024中国应急(消防)品牌巡展西安站成功召开!惊喜不断
  • 信创电脑|暴雨新增兆芯KX-7000处理器版本