Redis--常用数据结构和编码方式

目录

一、引言

二、常用数据结构

1.字符串(String)

2.哈希(HashMap)

3.列表(List)

4.集合(Set)

5.有序集合(Zset)

三、总结


一、引言

本篇文章我们将介绍Redis中value的常用数据结构。

二、常用数据结构

Redis在底层源码实现中,对上述数据结构都进行了优化,内部具体实现的数据结构会存在变 数。

1.字符串(String)

数据类型:String,内部编码:raw (底层就是持有一个字节数组byte数组,比较长的字符串),int (value就是整数时,用int保存,方便保存以及算术运算),embstr(针对短字符串进行的特殊优化)

2.哈希(HashMap)

数据类型:Hash,内部编码:hashtable(最基本的Hash表),ziplist(在哈希表中元素比较少的时候,节省空间)

3.列表(List)

数据类型:List,内部编码:LinkedList(链表),ziplist(压缩列表),在Redis3.2开始,引入了新的实现方式,quickList,同时兼顾了上述两种的优点(quickList就是一个链表,每一个元素又是一个ziplist,同时兼顾了空间和效率)

4.集合(Set)

数据结构:Set,内部编码:hashtable(最基本的Hash表),intset(集合中存的都是整数)

5.有序集合(Zset)

除了存储member之外,还存储一个score(权重)

数据结构:zset,内部编码:skiplist(跳表也是链表,每个节点会有多个指针域,时间复杂度是O(N)),ziplist(压缩集合)

命令:

object encoding key

查看具体执行的编码:

三、总结

本篇文章简单介绍了在redis中的数据结构以及具体的编码方式,感谢观看!

相关推荐
热爱编程的小曾4 分钟前
sqli-labs靶场 less 8
前端·数据库·less
THRUSTER1111113 分钟前
MySQL-- 函数(单行函数):数值函数, 字符串函数
数据库·mysql·函数·navicat·单行函数
橙序研工坊19 分钟前
MySQL的进阶语法7(索引-B+Tree 、Hash、聚集索引 、二级索引(回表查询)、索引的使用及设计原则
数据库·sql·mysql
Bruce-li__20 分钟前
深入理解Python asyncio:从入门到实战,掌握异步编程精髓
网络·数据库·python
小光学长1 小时前
基于vue框架的智能服务旅游管理系统54kd3(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
Bonnie_12151 小时前
07-MySQL-事务的隔离级别以及底层原理
数据库·mysql
ETLCloud数据集成社区1 小时前
ETLCloud是如何通过Oracle实现CDC的?
数据库·oracle·etl·实时数据同步
KATA~1 小时前
解决MyBatis-Plus枚举映射错误:No enum constant问题
java·数据库·mybatis
xyliiiiiL2 小时前
一文总结常见项目排查
java·服务器·数据库
shaoing2 小时前
MySQL 错误 报错:Table ‘performance_schema.session_variables’ Doesn’t Exist
java·开发语言·数据库