首页 >

mysql提高查询性能,Redis如何弥补传统MySQL架构的不足 – 数据库 – 前端,asp mysql提权

mysql的master slave,vba窗体连接mysql,mysql返回日期星期几,mysql 数据连接满了,qt mysql select < >,asp mysql提权mysql提高查询性能,Redis如何弥补传统MySQL架构的不足 - 数据库 - 前端,asp mysql提权MySQL+Redis

Redis自身是可以做数据持久化的,很多同学都会想Redis应该可以替代MySQL,但是大家使用一项技术、一个框架的时候,不是看它能不能,而是要看它适合不适合。

所以大多数公司的存储都是MySQL+Redis,MySQL(或者其他关系型数据库)作为主存储,Redis作为辅助存储,被用作缓存,这样可以加快访问读取的速度,提高性能。

Redis被用作缓存,以减少数据库IO的读操作,减轻数据库的压力,例如:

存储热点数据:经常会被查询,但是不经常被修改或者删除的数据;

计数器:诸如很多论坛用于统计点击数;

分布式锁及单线程机制;

最新列表、排行榜:请不要使用select top 10 from xxxx。

划重点,下面介绍一下缓存穿透

很多时候,程序员习惯先查询Redis,查询不到的话再去查询数据库,能查到的话再写入Redis中,认为这样不仅缓解了数据库的压力,同时也能保证数据的准确性。

但是由于缓存不命中就会查询数据库,如果一直查询不到的话,就导致每次请求都会查询数据库,如果短时间内有大量这样的请求,那么数据库可能会扛不住。

这就是缓存穿透。

其实应对的方法也很简单,查询不到的数据,也缓存到Redis中,并设置数据的过期时间。

举个不一定恰当的例子,例如Redis中缓存员工信息,提供接口根据工号查询员工信息:

接口入参工号A001。

系统先在Redis中查询,查询不到。

系统去数据库中查询,也查询不到。

系统插入Redis,key=A001,value=null,设置过期时间五分钟。

这样,五分钟之内再根据A001查询,不会穿透到数据库。

四分钟后,数据库中插入了A001的数据。

五分钟后,Redis中数据过期,下一次请求过来,会查询数据库,并把信息加载到Redis中。

希望偶的回答,能够帮助到你!

偶会持续分享Java程序开发、架构设计、职业发展等方面的知识和见解,希望能得到你的关注今日头条【会点代码的大叔】,转载请注明出处。

mysql的master slave,vba窗体连接mysql,mysql返回日期星期几,mysql 数据连接满了,qt mysql select < >,asp mysql提权mysql提高查询性能,Redis如何弥补传统MySQL架构的不足 - 数据库 - 前端,asp mysql提权


mysql提高查询性能,Redis如何弥补传统MySQL架构的不足 - 数据库 - 前端,asp mysql提权
  • 两个oracle数据库之间怎么插入表数据 - 数据库 - 前端|
  • 两个oracle数据库之间怎么插入表数据 - 数据库 - 前端| | 两个oracle数据库之间怎么插入表数据 - 数据库 - 前端| ...

    mysql提高查询性能,Redis如何弥补传统MySQL架构的不足 - 数据库 - 前端,asp mysql提权
  • mysql导出数据库数据,mysqldump怎样导出一个库的多个表 - 数据库 - 前端,mysql精确两位小数
  • mysql导出数据库数据,mysqldump怎样导出一个库的多个表 - 数据库 - 前端,mysql精确两位小数 | mysql导出数据库数据,mysqldump怎样导出一个库的多个表 - 数据库 - 前端,mysql精确两位小数 ...

    mysql提高查询性能,Redis如何弥补传统MySQL架构的不足 - 数据库 - 前端,asp mysql提权
  • 设定mysql查询编码,利用mysql查询每个部门工资最高的两个人 - 数据库 - 前端,vb mysql数据库查询
  • 设定mysql查询编码,利用mysql查询每个部门工资最高的两个人 - 数据库 - 前端,vb mysql数据库查询 | 设定mysql查询编码,利用mysql查询每个部门工资最高的两个人 - 数据库 - 前端,vb mysql数据库查询 ...