01 基本框架:一个键值数据库包含什么

01 基本框架:一个键值数据库包含什么

前言:对蒋德钧老师的《Redis 核心技术与实战》课程的学习记录。

构造简单的键值数据库 SimpleKV

考虑里面可以存什么样的数据,对数据可以做什么样的操作,也就是数据模型和操作接口。

对于键值数据库而言,基本的数据模型是 key-value 模型。

Redis 能够在实际业务场景中得到广泛的应用,就是得益于支持多样化类型的 value

PUT/GET/DELETE/SCAN 是一个键值数据库的基本操作集合。

键值对保存在内存,读写很快。潜在的风险是一旦掉电,所有的数据都会丢失。

键值对保存在外存,可以避免数据丢失,但是受限于磁盘的慢速读写,键值数据库的整体性能会被拉低。

SimpleKV 的基本组件

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

索引的作用是让键值数据库根据 key 找到相应 value 的存储位置,进而执行操作。 Redis 采用哈希表作为 key-value 索引。

内存键值数据库(例如 Redis)采用哈希表作为索引,很大一部分原因在于,其键值数据基本都是保存在内存中的,而内存的高性能随机访问特性可以很好地与哈希表 O(1) 的操作复杂度相匹配

从 SimpleKV 演进到 Redis的几点变化:

  1. Redis 主要通过网络框架进行访问,不再是动态库,使得 Redis 作为一个基础性的网络服务进行访问,扩大了 Redis 的应用范围。
  2. Redis 数据模型中的 value 类型很丰富,因此也带来了更多的操作接口。
  3. Redis 的持久化模块能支持两种方式:日志(AOF)和快照(RDB)。
  4. SimpleKV 是个简单的单机键值数据库,Redis 支持高可靠集群和高可扩展集群。
posted @ 2024-02-19 16:22  zhyan0502  阅读(31)  评论(0编辑  收藏  举报