微服务之Redis

介绍:

首页你要明白为什么要去用Redis?

1.Redis是用来减少数据库压力的,因为数据库承受压力能力较弱,而且数据库资源非常宝贵,一旦发生崩溃,后果可想而知,所以Redis就是用来解决这个问题的

2.Mysql的最高并发量可以达到16384,而Redis的最高并发可以达到10W,效果就不多介绍了,可以在很大程度上减轻数据库的压力。

为什么要去用Nginx部署静态页面呢?

1.首先介绍一下服务器的承受压力程度,tomcat服务器最高并发只有150,而node服务器最高并发也仅仅只有1000,那么如果在一秒钟来了10000或更多个请求的话,那是不是服务器就直接瘫痪了,所以nginx就能很好的避免这种现象发生,nginx的最高并发可以达到5W

Redis穿透

缓存穿透是指查询一个数据库一定不存在的数据。

我们以前正常的使用Redis缓存的流程大致是:

1、数据查询首先进行缓存查询

2、如果数据存在则直接返回缓存数据

3、如果数据不存在,就对数据库进行查询,并把查询到的数据放进缓存

4、如果数据库查询数据为空,则不放进缓存

例如我们的数据表中主键是自增产生的,所有的主键值都大于1。此时如果用户传入的参数为-1,会是怎么样?这 个1,就是一定不存在的对象。程序就会每次都去查询数据库,而每次查询都是空,每次又都不进行缓存。假如 有人恶意攻击,就可以利用这个漏洞,对数据库造成压力,甚至压垮我们的数据库。

为了防止有人利用这个漏洞恶意攻击我们的数据库,我们可以采取如下措施:

如果从数据库查询的对象为空,也放入缓存,key为用于提交过来的主键值,value为null,只是设定的缓存过期时 间较短比如设置为60秒。这样下次用户再根据这个key查询redis缓存就可以查询到值了(当然值为null),从而 保护我们的数据库免遭攻击。

Redis雪崩

缓存雪崩,是指在某一个时间段,缓存集中过期失效。在缓存集中失效的这个时间段对数据的访问查询,都落到了 数据库上,对于数据库而言,就会产生周期性的压力波峰。

为了避免缓存雪崩的发生,我们可以将缓存的数据设置不同的失效时间,这样就可以避免缓存数据在某个时间段集中 失效。例如对于热门的数据(访问频率高的数据)可以缓存的时间长一些,对于冷门的数据可以缓存的时间短一 些。甚至对于一些特别热门的数据可以设置永不过期。

Redis击穿

缓存击穿,是指一个key非常热点(例如双十一期间进行抢购的商品数据),在不停的扛着大并发,大并发集中对 这一个点进行访问。当

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值