一 为什么必会 Redis
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis 提供了多种丰富的数据类型,常见实用的有:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)。是一个高性能的 key-value 数据库。
另外有四种不常见的数据类型: BitMap(2.2 版新增)、HyperLogLog(2.8 版新增)、GEO(3.2 版新增)、Stream(5.0 版新增)。
作为一名后端开发工程师而言,Redis 是一门不可或缺的技术储备。我们不仅会使用它,还要深度理解其设计之奥秘。所以这一系列文章用来记录学习、使用 Redis 过程中的知识点和经验。
二 数据类型
此系列文章中涉及到的源码大多是版本6.0,但2022年1月 Redis.0 开始发布RC版,故本文也适当进行兼容。各种数据类型使用的数据结构关系如下:
三 源码解读
- SDS-简单动态字符串
- Redis - String 类型数据结构(SDS、Int)图文详解
- ziplist-压缩列表
- zipmap-压缩字典
- quicklist-快速列表
- skiplist-跳表
- dict-字典
- intset-整数数组
- redis 通信协议讲解
- listpack-紧凑列表
- zmalloc-内存分配