MySQL与Redis的缓存

mysqlredis都可以用作存储,但是redis是基于内存的,所以一般我们不用来存储数据,是与mysql或者其他数据库联合使用,数据库存储数据,Redis用作缓存能够是的更快地进行查询。

mysql也有自己的缓存机制,当两句查询相同时可以走缓存查询也不需要再去存储引擎进行搜索:
MySQL与Redis的缓存_第1张图片
但是mysql的缓存机制默认是关闭的:

mysql> show variables like 'query_cache_type';
+------------------------------+---------+
| Variable_name                | Value   |
+------------------------------+---------+
| query_cache_type             | OFF     |
+------------------------------+---------+

既然默认关闭,那也就意味着不建议使用:这是因为:

  • MySQL自带的缓存系统应用场景非常有限,它要求SQL语句必须一模一样,多一个空格,变一个大小写都被认为是两条不同的SQL语句
  • 缓存失效非常频繁。只要一个表的数据有任何修改,针对该表的所有缓存都会失效。对于更新频繁的数据表而言,缓存命中率非常低!

所以缓存的功能还是交给专业的ORM框架(比如MyBatis默认开启一级缓存)或者独立的缓存服务Redis更加适合

你可能感兴趣的:(mysql,数据库,redis,缓存,redis,mysql)