Redis底层数据结构实现

REDIS  较宽泛的支持5种数据结构  分别为

  1. 字符串
  2. 列表
  3. 集合
  4. 散列
  5. 有序集合

关于这几种数据结构的使用 相信网上有很多资料,查看官网API 也很详细了  读者可以自己随意翻阅 很方便 。

接下来介绍的是  这些数据结构背后的实现 。更底层的数据结构实现

(1)先介绍SDS这种数据结构 :SDS【simple dynamic string】简单动态字符串

我们先说场景:比如用的比较多的SET命令  set msg  "hello"

那么过程是什么样子的呢  

Redis将在数据库中创建一个新的键值对

  • 键值对的键是一个字符串,底层实现是保存了"msg"的SDS
  • 键值对的值也是一个字符串对象,对象的底层实现也是保存了字符串"hello"的SDS

(2)链表

 

 integers 底层实现就是一个链表,每个节点保存了一个整数值

场景:发布与订阅、慢查询、监视器等功能也用了链表,Redis服务器本身还使用了链表来保存多个客户端的状态信息,以及使用链表来构建客户端输出缓冲区

(3)字典

1.Redis数据库就是使用字典来作为底层实现的,对数据库的增、删、改都是构建在字典之上的

set msg "hello"

还是这个例子 这个键值对就是保存在代表数据库的字典里面的

2.还有一种场景

之前的散列结构 

 

 website键的底层实现就是一个字典,字典包含了10086个键值对

 

(4)跳跃表

 

 

...未完待续

 

posted @   陶朱公Boy  阅读(214)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2018-07-31 事件驱动之JDK观察者模式
2018-07-31 事件驱动模型的常见实现与支持
2018-07-31 通过阻塞队列实现生产者和消费者异步解耦
2018-07-31 tail常用命令总结
点击右上角即可分享
微信分享提示