当前位置: 移动技术网 > IT编程>数据库>Redis > Redis基础篇-01键值数据库基础架构

Redis基础篇-01键值数据库基础架构

2020年09月29日  | 移动技术网IT编程  | 我要评论
Redis基础篇-01键值数据库基础架构01 | 导读1、更好的学习方式1)先建立起“系统观”,也就是说,如果我们想要深入理解和优化 Redis,就必须要对它的总体架构和关键模块有一个全局的认知,然后再深入到具体的技术点2、专栏讲解方式1)通过剖析一个最简单 SimpleKV 键值数据库,来迅速抓住学习和调优 Redis 的关键02 | 构造 SimpleKV 键值数据库1、SimpleKV 的基本内部架构1)大体来说,一个键值数据库包括了访问框架、索引模块、操作模块和存储模块四

Redis基础篇-01键值数据库基础架构

01 | 导读

1、更好的学习方式

1)先建立起“系统观”,也就是说,如果我们想要深入理解和优化 Redis,就必须要对它的总体架构和关键模块有一个全局的认知,然后再深入到具体的技术点

2、专栏讲解方式

1)通过剖析一个最简单 SimpleKV 键值数据库,来迅速抓住学习和调优 Redis 的关键

02 | 构造 SimpleKV 键值数据库

1、SimpleKV 的基本内部架构

1)大体来说,一个键值数据库包括了访问框架、索引模块、操作模块和存储模块四部分

2、可以对数据做什么操作

1)SimpleKV 支持基本操作增删改查,即 PUT、GET 和 DELETE
2)键值对保存在内存还是外存,以及它们的优劣

3、可以存哪些数据

1)对于键值数据库而言,基本的数据模型是 key-value 模型
2)“不同键值数据库支持的 key 类型一般差异不大,而 value 类型则有较大差别。例如,Memcached 支持的 value 类型仅为 String 类型,而 Redis 支持的 value 类型包括了 String、哈希表、列表、集合等
3)不同 value 类型的实现,不仅可以支撑不同业务的数据需求

4、采用什么访问模式

1)访问模式通常有两种:一种是通过函数库调用的方式供外部应用使用,另一种是通过网络框架以 Socket 通信的形式对外提供键值对操作
2)实际的键值数据库也基本采用上述两种方式,例如,RocksDB 以动态链接库的形式使用,而 Memcached 和 Redis 则是通过网络框架访问

5、如何定位键值对的位置

1)当 SimpleKV 解析了客户端发来的请求,知道了要进行的键值对操作,此时,SimpleKV 需要查找所要操作的键值对是否存在,这依赖于键值数据库的索引模块
2)索引的作用是让键值数据库根据 key 找到相应 value 的存储位置,进而执行操作
3)不同键值数据库采用的索引并不相同,例如,Memcached 和 Redis 采用哈希表作为 key-value 索引,而 RocksDB 则采用跳表作为内存中 key-value 的索引
4)对于 Redis 而言,通过索引找到 key对应的value后,仍然需要从 value 的复杂结构(例如集合和列表)中进一步找到我们实际需要的数据,这个操作的效率本身就依赖于它们的实现结构

6、不同操作的具体逻辑是怎样的

1)GET/SCAN:根据 value 的存储位置返回 value 值
2)PUT:新建或修改,为新建键值对分配内存空间
3)“DELETE:删除,释放相应的内存空间

7、如何实现重启后快速提供服务

1)SimpleKV 只需要考虑何时将内存中的键值数据保存到文件中,有两种方式。
2)一种方式是,对于每一个键值对,SimpleKV 都对其进行落盘保存, 该方式更加可靠,但是,因为每次都要写盘,SimpleKV 的性能会受到很大影响,
3)另一种方式是,SimpleKV 只是周期性地把内存中的键值数据保存到文件中,这样可以避免频繁写盘操作的性能影响。但是有数据丢失的风险。

03 | 小结

1、构造简单键值数据库 SimpleKV

1)前面两步我们是从应用的角度进行设计的,也就是应用视角
2)后面四步其实就是 SimpleKV 完整的内部构造

2、从 SimpleKV 到 Redis 的演进
在这里插入图片描述

1)从 SimpleKV 到 Redis 的演进 图
2)Redis 主要通过网络框架进行访问,而不再是动态库了
3)Redis 数据模型中的 value 类型很丰富,因此也带来了更多的操作接口
4)Redis 的持久化模块能支持两种方式:日志(AOF)和快照(RDB),它们各有优劣
5)SimpleKV 是个简单的单机键值数据库,但是,Redis 支持高可靠集群和高可扩展集群,因此,Redis 中包含了相应的集群功能支撑模块

04 | 思维导图

1、键值数据库基础架构
在这里插入图片描述

参考文献:

[1] 蒋德钧. Redis核心技术与实战[M]. 极客时间, 2020.
[2] 图片取自《Redis核心技术与实战》专栏

本文地址:https://blog.csdn.net/z_z_z_666666/article/details/108875447

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网