为啥mysql在持久化上比redis用的多

Posted

技术标签:

【中文标题】为啥mysql在持久化上比redis用的多【英文标题】:Why is MySQL more used than redis in persistence为什么mysql在持久化上比redis用的多 【发布时间】:2022-01-11 13:02:21 【问题描述】:

我认为有两个原因

1 mysqlredis 都提供持久化,但为什么mysqlredis 在持久化中使用得更多?也许redis 没有索引,不能用于直接从磁盘回答查询。但是由于我们可以从内存中查询,所以不需要从磁盘中查询。

2 Redis定期将数据保存到磁盘,可能会发生数据丢失,但是Mysql是否在insert之后立即将数据保存到磁盘没有时间窗口?

【问题讨论】:

Redis 和 MySQL 有不同的数据结构。 MySQL 是 RDBMS(表、关系、SQL),而 Redis 是键值存储,通常用作缓存服务器。 明确不允许在帖子中提出多个问题。 【参考方案1】:

Redis 和 MySQL 实际上是两种截然不同的技术。 Redis 主要用作 缓存,用于将数据 临时 存储为键值存储。虽然确实可以将 Redis 配置为在后台写回数据库或文件,但 Redis 本身并不是这些东西。相反,Redis 旨在存储通常被认为是易失性的数据。

另一方面,MySQL 是一个数据库和一个成熟的数据存储。 MySQL 适合永久存储数据,同时还提供了丰富的 API,便于查询和搜索数据。

就共同点而言,针对具有哈希索引的 MySQL 列的查询的行为有点类似于在 Redis 缓存中的查找,每个都使用特定的键。但不同的是,一般来说,Redis 的执行速度比数据库快 100 倍左右。因此,当需要闪电般快速的缓存技术时,MySQL 通常不适合此用途,但像 Redis 这样的缓存可能适合。

【讨论】:

Mysql 是否在write operations 之后立即将数据保存到磁盘 是的,通常 DML 操作会在事务结束时写入存储。

以上是关于为啥mysql在持久化上比redis用的多的主要内容,如果未能解决你的问题,请参考以下文章

redis持久化

redis比mysql访问速度快吗

springboot+redis持久化存储数据(不使用MySQL)

Redis 是啥?有啥用

Apache ActiveMQ 持久化到MySQL数据库的简单配置

Redis