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

查看 45|回复 2
作者: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->磁盘。
各位还有什么别的看法吗?

MySQL, Redis, 缓存, Oracle

stinkytofu   
从自己的角度回答就好了, 我的项目引入 Redis, 那肯定是因为 Redis 速度快, 好用, 这就是最主要的原因!
Maboroshii   
mysql 缓存不可控吧,你哪知道缓存了啥。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部