KV数据库基础
KV 数据库Key-Value Database键值数据库以“键 → 值”的形式组织数据类似编程语言中的哈希表或字典。user:1001 → {name: 张三, age: 25} order:9001 → {amount: 299, status: paid}1. 数据存储写入数据时客户端发送PUT(user:1001, 用户数据)数据库通常执行根据key计算哈希值或查找索引位置。将数据写入内存结构。记录日志WAL防止数据库崩溃后数据丢失。将数据异步或同步写入磁盘。更新索引使key能快速定位到对应的value。逻辑结构是Key Value -------------------------------- user:1001 用户信息 session:abc123 登录状态 product:500 商品信息key一般必须唯一。再次写入相同的key通常会覆盖旧值。2. 数据检索读取数据时客户端发送GET(user:1001)数据库通常按照以下过程查找先检查内存缓存。根据key查询哈希索引、树形索引或内存表。找到数据在内存或磁盘中的位置。读取并返回对应的value。如果不存在返回空值或“未找到”。因为通过唯一的key直接定位数据不需要像关系数据库那样扫描整张表所以查询通常很快平均可接近O(1)。3. 常见底层实现哈希表通过哈希函数定位数据单键查询速度快。B/B 树适合磁盘存储和按键范围查询。LSM Tree先写内存再批量合并到磁盘写入性能较高。内存加持久化数据主要存于内存同时通过日志或快照保存到磁盘例如 Redis。磁盘型存储主要依靠磁盘文件和索引保存数据例如 RocksDB。4. 基本操作PUT key value 新增或更新 GET key 查询 DELETE key 删除 EXISTS key 判断是否存在例如PUT user:1 {name:小李} GET user:1 DELETE user:1KV 数据库的核心优势是结构简单、读写速度快、容易进行分布式扩展不足是通常不擅长复杂关联查询例如多表连接和按多个字段组合筛选。常见的 KV 数据库包括 Redis、RocksDB、Amazon DynamoDB 和 etcd。