redis内部架构图如下:
采用什么访问模式?
通过网络框架进行访问
I/O模型设计:
概念:网络请求的解析,以及数据存取的处理,是用一个线程、多个线程,还是多个进程来交互处理呢?该如何进行设计和取舍呢?我们一般把这个问题称为I/O模型设计。不同的I/O模型对键值数据库的性能和可扩展性会有不同的影响
体现:
概念: 根据key能够找到value存储的具体位置,redis不太一样,找到redis的value后,还需要从value的复杂接口(例如集合和列表)中找到具体的数据。redis一般采取高效的索引结构作为value的底层存储
redis为什么采取哈希表作为索引呢?
由于redis的数据都保存在内存中,针对内存的随机访问的特性,哈希表O(1)的操作复杂度比较匹配
针对内存的分配和释放
redis的持久模块分为两种方式:日志(AOF)和快照(RDB)
主从复制
哨兵机制
数据分片
接下来会根据上述的几个模块进行深入的讲解
Update your browser to view this website correctly. Update my browser now