教育培训 > redis+mysql有几种用法?

redis+mysql有几种用法?

2020-07-24 10:54阅读(63)

redis+mysql有几种用法?:首先要知道mysql存储在磁盘里,redis存储在内存里,redis既可以用来做持久存储,也可以做缓存,而目前大多数公司:-redis,mysql,用法

1

首先要知道mysql存储在磁盘里,redis存储在内存里,redis既可以用来做持久存储,也可以做缓存,而目前大多数公司的存储都是mysql + redis,mysql作为主存储,redis作为辅助存储被用作缓存,加快访问读取的速度,提高性能

那么为什么不直接全部用redis存储呢?

我的看法是:因为redis存储在内存中,如果存储在内存中,存储容量肯定要比磁盘少很多,那么要存储大量数据,只能花更多的钱去购买内存,造成在一些不需要高性能的地方是相对比较浪费的,所以目前基本都是mysql(主) + redis(辅),在需要性能的地方使用redis,在不需要高性能的地方使用mysql,好钢用在刀刃上

貌似其他回答都没有说到这一点:redis的持久化功能,还可以防缓存雪崩。应该说这才是redis支持持久化的必要性所在。

例如假设后台架构是redis+mysql,且redis关闭了持久化,redis服务器某天突然宕机,丢失了内存所有缓存,当redis服务器恢复后,必然要重新从mysql拿数据做缓存,如果读数据请求非常集中,mysql可能就瘫痪了,此即为缓存雪崩。

如果遇到土豪公司只用redis数据库而不用mysql,就没有什么缓存雪崩问题,因为此时redis根本就不是缓存功能而是存储功能了。

2

redis+mysql算是一种很常用的模式了。一般而言有以下几种用法:

  1. redis充当缓存,减轻mysql压力。即从mysql请求数据时,会先尝试从redis中获取数据,从而极大的减少对mysql的访问。
  2. 利用redis本身特性。redis本身有很多优秀的特性,如非常简单的时间计数,然后将计数结果定时存储到mysql(如果需要的话);支持有序集合,避免mysql的order操作,redis原生支持获取有序数据列表;等等
  3. redis的高级应用。redis并发锁的应用,在高并发情境下非常常见。

所以,目前而言,redis算是和mysql结合最为紧密的几种技术之一了。