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

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

性能

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

并发

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

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

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

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值