redis
Keep Running!
你不一定要逆风翻盘,但一定要向阳而生!
展开
-
小白日更第八十三天->Redis缓存雪崩
简单描述从字面意思来看也很好理解,就是缓存中大量的数据失效了,也就是到了过期时间,但是如果这个时候是流量高峰期,那岂不是全部的流量请求都打到了数据库上,然后数据库就挂掉了…解决方案1、让Key的失效时间分散开,可以在统一的失效时间上再加一个随机值,或者使用更高级的算法分散失效时间。比如:setRedis(Key,value,time + Math.random() * 10000);2、构建多个redis实例,个别节点挂了还有别的可以用。3、多级缓存:比如增加本地缓存,减小redis压力。4、原创 2021-04-20 11:21:28 · 104 阅读 · 0 评论 -
小白日更第八十二天->Redis缓存击穿
简单理解关于缓存击穿的问题其实也很简单,就是一个热点数据,我们肯定会把它放在缓存里面,但是如果在流量的高峰期,这个热点数据突然过期了,那岂不是全部的流量都要打到数据库上,那缓存就形同虚设,数据库可能先报警一下,然后挂掉.其实这个问题我觉得是在实际问题中很常见,也应该在流量的高峰期提前做好准备的,比如双十一,那天的流量的大小就不用我描述有多恐怖了,如果这个时候热点数据在缓存中过期了,那对数据库造成的伤害…解决方案1、设置热点Key,自动检测热点Key,将热点Key的过期时间加大或者设置为永不过期,或者设原创 2021-04-20 11:10:11 · 95 阅读 · 0 评论 -
小白日更第八十一天->布隆过滤器
关于布隆过滤器,小伙伴们不要觉得很难,其实这个东西原理还是很简单的。原理布隆过滤器其实就是一个很长的bit数组,里面的每一个数组下标初始为0.当我们向布隆过滤器中添加一个元素的时候,会经过hash算法,来定位一下这个数据对应的数组下标是多少,但是很容易想到的是一个hash函数可能产生hash冲突的概率比较大,那我们极端一点,每个数据我都让他经过100次hash函数,其实我个人觉得,这样产生的hash冲突的概率虽然很小很小了,但是有一个问题,就是时间问题,经过一次hash可能会产生较多的冲突,但是hash原创 2021-04-20 09:02:54 · 93 阅读 · 0 评论 -
小白日更第八十天->Redis缓存穿透
什么是缓存穿透缓存穿透其实很好理解.正常来说我们在数据库里存的数据,比如id都是从1开始,然后递增的。那现在如果有一个用户要访问id是-1的这么一条数据,首先去缓存中查看,缓存中发现没有id=-1的数据,然后去数据库中查看,发现数据库中也没有id=-1的数据。如果这样不合理的请求,也就是我们数据库中不存在的数据。有一个两个这样的非法请求,我们数据库抗住还是没问题的,但是如果这样不合理的请求多了,上升到好几千,这里应该就是被**“攻击了”**,那很可能我们的数据库就挂掉了.那如何防止这种情况的发生呢?解原创 2021-04-20 08:14:00 · 89 阅读 · 0 评论 -
小白日更第七十九天->redis的优缺点
上一篇我说到了为什么要用redis做缓存。这篇我们看看redis的优缺点优点百度百科给出的是一个50个并发执行十万个请求,然后读的速度是十一万次每秒,写的速度是八万一千次每秒。支持数据持久化,支持AOF和RDB两种持久化方式。因为redis的数据是放在内存中的,一旦断电或者服务宕机了或者其他一些特殊情况内存数据会丢失。那肯定要把数据持久化到磁盘上去。支持事务,Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。支持的数据结构比较多,除了支持strin原创 2021-04-17 19:00:33 · 98 阅读 · 0 评论 -
小白日更第七十八天->为什么要用Redis做缓存
简单了解过Redis的小伙伴应该都知道Redis常被当做缓存。那为什么要选这个nosql型的数据库来当缓存小伙伴们有考虑过这个问题吗?两个角度考虑,性能,并发。性能我们的Mysql中存放的数据是存放在磁盘上的,在对数据进行读取的时候会先把数据从磁盘读到内存中去,然后再对数据做一个处理,那我们知道磁盘的IO速度是远远小于cpu处理数据的速度的,而redis的数据是存在内存中的,所以我们访问redis中的数据相当于是直接基于内存操作,所以很快,那redis基于内存操作的话,万一断电了怎么办,这么简单的问题原创 2021-04-16 23:10:45 · 1681 阅读 · 4 评论 -
小白日更第七天->Redis(面试系列一)
2021年还有人不知道redis吗?其实我们在校的很多大学生应该多少会听过redis,但是应该没用过,而且也知道redis是面试的高频问点,redis 应该是目前所有框架/中间件中被问到频率最高的,至少也是之一。老规矩百度百科:Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2原创 2021-03-09 15:12:05 · 99 阅读 · 2 评论