当前位置:主页 > 查看内容

小白日更第七十八天->为什么要用Redis做缓存

发布时间:2021-07-16 00:00| 位朋友查看

简介:简单了解过Redis的小伙伴应该都知道Redis常被当做缓存。那为什么要选这个nosql型的数据库来当缓存小伙伴们有考虑过这个问题吗 两个角度考虑性能并发。 性能 我们的Mysql中存放的数据是存放在磁盘上的在对数据进行读取的时候会先把数据从磁盘读到内存中去然后……

简单了解过Redis的小伙伴应该都知道Redis常被当做缓存。那为什么要选这个nosql型的数据库来当缓存小伙伴们有考虑过这个问题吗?
两个角度考虑,性能,并发。

性能

我们的Mysql中存放的数据是存放在磁盘上的,在对数据进行读取的时候会先把数据从磁盘读到内存中去,然后再对数据做一个处理,那我们知道磁盘的IO速度是远远小于cpu处理数据的速度的,而redis的数据是存在内存中的,所以我们访问redis中的数据相当于是直接基于内存操作,所以很快,那redis基于内存操作的话,万一断电了怎么办,这么简单的问题,咱们都想到了,设计redis的人会想不到吗,redis有两种持久化数据的方式,一种是RDB,一种是AOF,这里我就不过多的做拓展了。

并发

高并发:直接操作缓存能够承受的请求是远远大于直接访问数据库的,所以我们可以考虑把数据库中的部分数据转移到缓存中去,这样用户的一部分请求会直接到缓存这里而不用经过数据库。

为什么要用 redis 而不用 map/guava 做缓存?

缓存分为本地缓存和分布式缓存。以 Java 为例,使用自带的 map 或者 guava 实现的是本地缓存,最主要的特点是轻量以及快速,生命周期随着 JVM的销毁而结束,并且在多实例的情况下,每个实例都需要各自保存一份缓存,缓存不具有一致性。

使用 redis 或 memcached 之类的称为分布式缓存,在多实例的情况下,各实例共用一份缓存数据,缓存具有一致性。缺点是需要保持 redis 或 memcached服务的高可用,整个程序架构上较为复杂。

;原文链接:https://blog.csdn.net/weixin_47794376/article/details/115773637
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:grpc的封装 下一篇:没有了

推荐图文


随机推荐