键值存储(Key-Value Store)被认为是“简单”的,主要是因为它在数据模型、实现逻辑、使用方式上都做了最大程度的简化。可以从以下几个层面理解:
对比关系型数据库:
| 键值存储 | 关系型数据库 |
|---|---|
| key → value | 表、行、列、约束、关系 |
| 不需要 schema | 需要定义表结构 |
| 无类型约束 | 有类型、外键、索引规则 |
➡️ 没有复杂的“关系”和“结构”负担
典型键值存储只提供极少的 API:
put(key, value)get(key)delete(key)有些增加:
scan(prefix)ttl(过期时间)对比 SQL:
SELECT * FROM user
JOIN order ON ...
WHERE age > 18
GROUP BY city
键值存储不需要:
底层通常就是:
核心逻辑只有一句话:
用 key 找到 value 存在哪里,读出来或写进去
没有:
因为:
所以:
这也是 Redis、Etcd、DynamoDB 等能大规模使用的原因。
对开发者来说:
你不需要理解:
键值存储简单,是因为它只解决一个问题:
给一个 key,存 / 取一个 value
把“复杂留给应用层”,把“简单留给存储层”。
如果你愿意,我也可以从源码层面或和关系型 / 文档型数据库对比的角度再讲一讲。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。