01 键值数据库的基本架构

本篇重点:通过SimpleKV了解KV数据库的基本架构

Redis: 键值DB

从SimpleKV入手学习Redis

SimpleKV Redis
数据模型 key:value组成的KV键值对
key-type: String
value-type: 基本数据类型(int、double等)
KV键值对
value-type: String、哈希表、列表、集合等
操作接口 PUT/GET/SCAN/DELETE ..
KV存储位置 内存 内存
基本组件 访问框架、索引模块、操作模块、存储模块 ..
访问模式 函数库调用(dll)、网络框架(Socket)
(RocksDB用函数库调用,Memcached、Redis用网络框架)
网络框架——“单线程、高性能”
索引模块 哈希表、B+树、字典等
(Memcached、Redis用哈希表,RocksDB用跳表)
哈希表
持久化功能 文件形式存储内存中的KV AOF、RDB

Q-A:

  1. KV保存在内/外存的区别?

    内存:优点——读写快,缺点——掉电数据丢失
    外存:优点——避免数据丢失,缺点:慢,速度受限于磁盘

  2. 如何根据不同场景选择KV的存储位置?

    缓存场景:要求快速访问但允许数据偶有丢失——内存

    Memcached/Redis都是内存键值DB

  3. 两种访问模式——函数库调用/网络框架中,网络框架需要考虑的问题?

    a. 网络连接的处理(连接/断开/重连)

    b. 网络请求的解析(接口)

    c. 数据存取的处理(单/多线程,多进程)——IO模型设计

  4. 索引模块:Redis采用哈希表作为索引的原因?

    内存的高性能随机访问特性可以很好匹配哈希表O(1)的操作复杂度

  5. 操作的逻辑步骤

    GET/SCAN: 根据Key返回value值
    PUT/DELETE: a. 新写入/删除KV
          b. 分配/释放内存

键值数据库SimpleKV的基本架构

图片来源于极客时间专栏《Redis核心技术与实战》

posted @ 2021-07-23 22:27  _程序兔  阅读(201)  评论(0编辑  收藏  举报