Redis 缓存优点、缺点、使用场景

缓存的收益

1、加速读写

通过缓存加速读写速度:CPU L1/L2/L3 Cache 、Linux page Cache 加速硬盘读写

、浏览器缓存、Ehcache缓存数据库结果。

2、降低后端负载

后端服务器通过前端缓存降低负载:业务端使用Redis降低后端MySQL负载等

缓存的成本

1、数据不一致:缓存层和数据层有时间窗口不一致,和更新策略有关

2、代码维护成本:多了一层缓存逻辑

3、运维成本:例如Redis Cluster

使用场景

1、降低后端负载:

对高消耗的SQL:join结果集/分组统计结果缓存。

比如要统计一个TP10排行榜,这个排行榜会设计到很复杂,很耗性能的SQL语句。

如果我们不用缓存,那么每一次请求都要去计算,请求量大的时候就会增加服务器负担,这样做很多时候都是没有意义的,我们只要在某个时间点,计算一次放在缓存里即可,

我们可以第一次或者预先算好放到Redis缓存中,下一次请求直接去访问缓存就好了。

2、加速响应请求

利用Redis/Memcache优化IO响应时间。

Redis是将数据源放在内存中的,这是它天然的优势,减少磁盘IO。假如我们介入了BI,我们可以将BI的结果放在Redis里面,每一次请求都是请求Redis,减轻BI服务器压力

3、大量写合并为批量写

如计数器先Redis累加,再批量写到DB。比如:如果实现一个点赞计数器,每次先Redis incr到内存,incr数据非常的快,然后再批量update mysql中,否则每次update到数据库,对于数据库来说

update 或者insert 对于数据库来说,本来就是比较慢的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。