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

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会自动根据当前的实际情况选择内部的数据结构,自适应的。


http://www.kler.cn/a/322242.html

相关文章:

  • uniapp实现图片上下浮动效果
  • 多速率信号处理-半带滤波器
  • 【漏洞复现】灵当CRM multipleUpload.php接口处存在文件上传漏洞
  • 高通Android 12 push framework.jar和service.jar
  • VMware Tools安装——VMware Tools是灰色的,不能安装, (不带图形化界面的虚拟机,只有命令行的模式!!!)
  • 【网络底层原理】I/O多路复用技术select、poll和epoll详解与比较
  • uniapp微信小程序遮罩层u-popup禁止底层穿透
  • 如何延长变阻器的使用寿命?
  • 【解密 Kotlin 扩展函数】扩展函数的底层原理(十八)
  • 9.23 My_string.cpp
  • 浅谈计算机视觉的学习路径1
  • C++ : 多态
  • uni-app App版本更新
  • 【永磁同步电机(PMSM)】 6. 矢量空间算法(SVPWM)
  • fuzzer实战-magma-模糊测试
  • 【计算机科学导论】
  • 安卓手机视频被误删怎么恢复,这3个方法满足你
  • 智能电话机器人的优势有哪些突出的?电销系统搭建部署
  • 西圣、漫步者头戴式耳机哪个音质好?热门主流头戴式耳机专业评测
  • MQTT.fx 1.7.1使用说明篇(OneNET-MQTT-API调试)