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

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

相关文章:

  • 上海电力大学《2020年+2021年830自动控制原理真题》 (完整版)
  • 二维数组的创建和初始化
  • 【高分系列卫星简介——高分辨率多模综合成像卫星】
  • tidb-一场select in百万参数引发的血案
  • 软件测试学习笔记丨curl命令发送请求
  • 前端框架的选择与考量:一场技术的盛宴
  • 电缆缺陷检测系统源码分享
  • 网页设计html心得
  • 数据对接 模板设计模式的使用
  • latex设置背景颜色
  • IMDB影评情感分析项目
  • Elasticsearch深度攻略:核心概念与实践应用
  • iwebsec靶场 解析漏洞通关笔记2-Nginx解析漏洞
  • 【YashanDB知识库】YashanDB-OCI-快速上手
  • selenium 显示等待12种预置条件包括定制等待条件
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • Android组件 - 收藏集 - 掘金
  • Angular2开发踩坑系列-生产环境编译
  • Fabric架构演变之路
  • mongodb--安装和初步使用教程
  • session共享问题解决方案
  • Transformer-XL: Unleashing the Potential of Attention Models
  • yii2权限控制rbac之rule详细讲解
  • 给github项目添加CI badge
  • 基于游标的分页接口实现
  • 免费小说阅读小程序
  • 如何解决微信端直接跳WAP端
  • 说说动画卡顿的解决方案
  • 思维导图—你不知道的JavaScript中卷
  • 微信小程序开发问题汇总
  • 我这样减少了26.5M Java内存!
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​MySQL主从复制一致性检测
  • ​queue --- 一个同步的队列类​
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • # C++之functional库用法整理
  • #include<初见C语言之指针(5)>
  • #QT(TCP网络编程-服务端)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • ${ }的特别功能
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (PySpark)RDD实验实战——取一个数组的中间值
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (接口自动化)Python3操作MySQL数据库
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (算法)求1到1亿间的质数或素数
  • (一)Java算法:二分查找
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • ***通过什么方式***网吧