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中的数据结构以及具体的编码方式,感谢观看!

相关推荐
weixin_381288185 分钟前
PyTorch中高效实现SOM邻域权重更新:向量化替代双重循环
jvm·数据库·python
m0_6178814212 分钟前
在 Go 中声明包级全局 Map 的正确方法
jvm·数据库·python
Polar__Star12 分钟前
Redis怎样管理废弃的数据集合_利用EXPIRE指令为任意数据类型设置生命周期
jvm·数据库·python
weixin_5689960612 分钟前
CSS布局如何解决父级因全是绝对定位导致本身没高度的问题
jvm·数据库·python
2601_9498166812 分钟前
如何在 Spring Boot 中配置数据库?
数据库·spring boot·后端
weixin_3812881813 分钟前
MySQL无法通过网络连接服务器_检查bind-address与访问权限
jvm·数据库·python
zopple25 分钟前
Laravel5.x核心特性全解析:从路由缓存到任务调度
缓存
钮钴禄·爱因斯晨25 分钟前
聚焦操作系统中的PV操作
数据库·算法·系统架构·c#
2301_8135995525 分钟前
CSS中relative与absolute的区别_详解相对与绝对定位应用场景
jvm·数据库·python
qq_3721542334 分钟前
c++怎么在写入文件流时通过peek预读功能实现复杂的逻辑判断【实战】
jvm·数据库·python