为什么 MySQL 有缓存,还要使用 Redis?

216 天前
 yodhcn
这是上次面试中,虽然面试官问我的问题,当时给我问迷糊了。
Q:为什么 MySQL 有缓存,还要使用 Redis ?
A:MySQL 以前有缓存,但由于命中率不高,在新版本中已经舍弃掉了。
Q:那 Oracle 数据库呢? Oracle 数据库有缓存吗?
A:不清楚。
Q:不论是 MySQL 还是 Oracle ,只要是数据库就应该都有缓存,那为什么数据库有缓存,还要使用 Redis ?
A: Redis 支持分片集群,缓存容量容易扩展;而 MySQL 是为单机设计的,缓存容量受限于运行 MySQL 的主机内存。

但面试官好像对这个回答不太满意
现在回想起来,虽然当时是我混淆了“MySQL 查询缓存”和“MySQL 的 Buffer Pool”,但是,MySQL 的 Buffer Pool 也起到了缓存作用,减少磁盘 IO 。

为什么 MySQL 有缓存,还要使用 Redis ?
这个问题,目前我只想到从两个角度回答:
1. Redis 支持分片集群,缓存容量容易扩展。
2. 多级缓存。Redis 内存->Buffer Pool->磁盘。
各位还有什么别的看法吗?
6491 次点击
所在节点    Redis
46 条回复
stinkytofu
216 天前
从自己的角度回答就好了, 我的项目引入 Redis, 那肯定是因为 Redis 速度快, 好用, 这就是最主要的原因!
Maboroshii
216 天前
mysql 缓存不可控吧,你哪知道缓存了啥。
amlee
216 天前
mysql 做不了分布式缓存吧?
ration
216 天前
1.redis 不止用于缓存 2.如上面所说可控性,还有缓存时间,缓存数据结构,很多方面都可以研究下
Ericcccccccc
216 天前
如果单从为了获得 key-value 的角度来讲, redis 相比起 mysql 会更便宜.
fredcc
216 天前
The query cache is deprecated as of MySQL 5.7.20, and is removed in MySQL 8.0.
哪怕 MySQL 有缓存,也是基于查询 SQL 的。不能代替业务级别的缓存。比如分布式应用情况下的用户会话缓存,又比如一个结果集是多个 SQL 查询结果经过业务逻辑处理后需要缓存。
不知道面试官对比这两个东西出于什么目的。
Worldispow
216 天前
为什么用 redis 不用 oracle ?
穷。
wonderfulcxm
216 天前
@fredcc 为什么后来的 MySQL 要取消 query cache ?我发现 WordPress 官方给的优化建议有一条是开启 query cache ,在多读少写的站点,比如 blog 提速非常明显。
dw2693734d
216 天前
为什么 MySQL 有缓存,硬盘还有设计缓存,CPU 也要设计缓存?
devopsdogdog
216 天前
更快的速度这点就够了。还有答的感觉就是刚工作和水瓶吧。
devopsdogdog
216 天前
补充一下,应该是想让你说 nosql 这类型的数据库区别吧。毕竟是不同类型的数据库
darkengine
216 天前
我要缓存一些不是数据库查询出来的结果, 或者是查出来后经过程序加工过的数据, MySQL query cache 就用不上了.
seth19960929
216 天前
无它, 快
buffzty
216 天前
一个是硬盘 io,一个是内存 io
murmur
216 天前
redis 可以缓存处理好的数据 直接就是和前端拿到的东西八九不离十了 连加工都省掉了
OysterQAQ
216 天前
可控性(包含对其进行操作,以及缓存粒度是方法级别还是对象级别),mysql 的缓存设计上就是面向 sql 尽量无感知的不可控的,缓存位于服务器层,甚至和存储引擎都是分离无关的
iorilu
216 天前
两码事把

redis 是主动缓存, 你知道缓存了啥

数据库是自动缓存把, 他按他算法缓存, 但不一定是你要的
ieliwb
216 天前
2 个东西,一个是关系型数据库,一个是非关系型,使用场景不一样
zjsxwc
216 天前
因为 Mysql 的 Query Cache 只能单机单核 CPU 才有效,不方便 scale 分布式,
也因为 proxysql 这个能解决上面 Mysql 缺点的 mysql 中间代理层软件与 oracle 有 py 交易,让 oracle 把 mysql8.0 开始删掉了 Query Cache 功能。
wy315700
216 天前
关于 Oracle 应该这么回答

Oracle 一切都很好,不管是性能还是稳定性,唯一的缺点是:贵

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/979119

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX