三种常用的数据存储技术
📅 2026/7/23 14:55:30
👁️ 阅读次数
📝 编程学习
数据存储技术
- 当今最主流、最常用的数据存数技术有MySQL、SQLite、Redis,他们三者各有不同的长处,用途也不同,可以互相配合使用,对比如下
| MySQL(存中心) | SQLite(存本地) | Redis(存缓存) | |
|---|---|---|---|
| 本质 | 数据存在独立的服务进程中,程序通过网络发命令进行读写 | 数据直接存储在文件中,程序可直接读写 | 数据存储在服务器的内存里,重启可能会丢失数据,但是读取速度很快 |
| 运行模式 | 客户端-服务端(C/S) | C/S | 直接嵌在程序内部 |
| 数据模型 | 表格+行 | 表格+行 | K-V键值对存储 |
| 部署方式 | 需要设置账户、权限、端口等 | 简单,直接复制.db文件 | 不需要进行多用户账号的管理,只需要关注内存上限控制、内存淘汰规则、数据持久化方案 |
| 读写速度 | 较慢,需要网络传输与TCP握手,连接池也有损耗 | 快,无网络开销 | 快,直接在内存中进行读取 |
| 并发写入 | 强,支持多版本并发控制 | 弱,多线程写入会阻塞 | 强,单线程原子操作 |
| 并发读取 | 强 | 强 | 强 |
| 数据容量 | 极大 | 理论上极大,但是太大会影响性能 | 受限于内存大小 |
| 持久化 | 持久,且支持崩溃后修复 | 持久,直接写入在硬盘里 | 默认非持久,但可以通过方案解决 |
主要用途:
- MySQL:用在Web网站、账户管理等不能接收丢失的地方,不适用与数据结构简单且要求响应速度极快的场景
- SQLite:AI agent本地记忆、手机APP数据、桌面软件等,不适用于Web这种需要高并发的场景
- Redis:适用于缓存层、会话/登录状态存储、消息队列等,不适用于数据量大、数据丢失后果严重的场景
相互配合使用案例:
在进行agent开发时,前台agent接收到用户请求后分解任务,把不同的任务模块放在对应的专属Redis队列中,对应的Sub-agent从Redis中拿到任务后再执行任务,在执行的过程中把得到的临时结果都放在自己的SQLite中,最后由主agent进行审核,通过后将所有数据汇总并存入到MySQL中,方便用户后续的查找
编程学习
技术分享
实战经验