欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > Redis的数据类型和编码方式

Redis的数据类型和编码方式

2025/3/10 6:30:30 来源:https://blog.csdn.net/m0_74312445/article/details/142596332  浏览:    关键词:Redis的数据类型和编码方式

目录

  • 数据类型:
  • 编码方式
    • String:
    • hash:
    • list:
    • set:
    • zset:
  • 通过这个指令可以看到底层实现

在这里插入图片描述

数据类型:

Redis底层实现上述数据结构的时候,会在源码层面,针对上述实现进行优化,来达到节省时间/空间的效果:
Redis向你承诺,我这有一个hash表,你进行查询,插入,删除操作,时间复杂度为O(1)
,但是这个背后的实现不一定就是一个标准的hash表,可能在特定的场景下,使用别的数据结构,但是仍然保证时间复杂度符合承诺!

编码方式

String:

  1. raw:最基本的字符串
  2. int:redis通常可以用来实现“计数”功能:当value就是一个整数int的时候,redis会直接用int来保持
  3. embstr:针对短字符的特殊优化

hash:

  1. hashtable:最基本的哈希表
  2. ziplist:压缩列表,在哈希表里面元素比较小的时候,会压缩为list。它可以节省空间

list:

  1. linklist:链表
  2. ziplist:压缩列表

redis 3.2开始,引入quicklist(一个链表,每一个元素是一个ziplist)把空间和效率能折中的兼顾到

set:

  1. hashtable
  2. intset:集合中都是整数

zset:

  1. skiplist:跳表,也是链表,每个结点上有多个指针域(针对分数,权重)
  2. ziplist

通过这个指令可以看到底层实现

OBJECT encoding [key1]

在这里插入图片描述

redis会自动根据当前的实际情况选择内部的数据结构,自适应的。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词