Redis学习(一):Redis整体架构

1.数据模型+操作

image-20210408230521474

2.内部架构

redis内部架构图如下:

img

2.1.访问架构

采用什么访问模式?

通过网络框架进行访问

I/O模型设计:

概念:网络请求的解析,以及数据存取的处理,是用一个线程、多个线程,还是多个进程来交互处理呢?该如何进行设计和取舍呢?我们一般把这个问题称为I/O模型设计。不同的I/O模型对键值数据库的性能和可扩展性会有不同的影响

体现:

  • 网络连接如何处理
  • 网络请求的解析
  • 数据存取的处理

2.3.索引模块

概念: 根据key能够找到value存储的具体位置,redis不太一样,找到redis的value后,还需要从value的复杂接口(例如集合和列表)中找到具体的数据。redis一般采取高效的索引结构作为value的底层存储

redis为什么采取哈希表作为索引呢?

由于redis的数据都保存在内存中,针对内存的随机访问的特性,哈希表O(1)的操作复杂度比较匹配

2.4.操作模块

  • Put/Get等具体的操作方法

2.5.存储模块

2.5.1.分配器

针对内存的分配和释放

2.5.2.持久化

redis的持久模块分为两种方式:日志(AOF)和快照(RDB)

2.6.高可用集群功能模块

主从复制

哨兵机制

2.7.高可扩展集群模块

数据分片

接下来会根据上述的几个模块进行深入的讲解

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×