【Redis十二】Redis的典型应用(缓存和分布式锁)

目录

Redis作为缓存

1.什么是缓存?

2.缓存的更新策略

3.缓存预热,缓存穿透,缓存雪崩和缓存击穿

Redis作为分布式锁

1.什么是分布式锁?

2.分布式锁的实现过程


        Redis是目前后端开发中非常热门的组件之一,本篇文章主要介绍它在作为缓存以及分布式领域的作用。

Redis作为缓存

1.什么是缓存?

缓存 (cache) 是计算机中的⼀个经典的概念. 在很多场景中都会涉及到。
核⼼思路就是把⼀些常⽤的数据放到触⼿可及(访问速度更快)的地⽅, ⽅便随时读取。
对于计算机硬件来说, 往往访问速度越快的设备, 成本越⾼, 存储空间越⼩.
缓存是更快, 但是空间上往往是不⾜的. 因此⼤部分的时候, 缓存只放⼀些 热点数据 (访问频繁的数据),就⾮常有⽤了。
众所周知,咱们日常使用的关系型数据库比如MySQL是非常“娇嫩”的,操作他比起操作缓存是非常耗时的,而且很容易在一瞬间遭受到大量数据操作时,因忙不过来而宕机,数据库很多时候直接成为了整个程序的性能瓶颈。为了给MySQL减少压力,提高程序的效率和稳定性,业内通常使用Redis作为MySQL的缓存,这样就能大大减少MySQL的压力,提高程序性能和稳定性。
        之所以缓存只存热点数据就能大大降低数据库的访问压力,是因为这个世界存在普遍的“二八定律“,即 20% 的热点数据, 能够应对 80% 的访问场景。 因此只需要把这少量的热点数据缓存起来, 就可以应对⼤多数场景, 从⽽在整体上有明显的性 能提升. 

2.缓存的更新策略

接下来还有⼀个重要的问题, 到底哪些数据才是 "热点数据" 呢?
对于热点数据的挑选一般有两种方式:
  1. 定期生成
  2. 实时生成
定期生成:
        每隔⼀定的周期(⽐如⼀天/⼀周/⼀个⽉), 对于访问的数据频次进⾏统计. 挑选出访问频次最⾼的前 N%的数据。

以搜索引擎为例:

搜索引擎的服务器会把哪个⽤⼾什么时间搜了啥词, 都通过⽇志的⽅式记录的明明⽩ . 然后
每隔⼀段时间对这期间的搜索结果进⾏统计 (⽇志的数量可能⾮常巨⼤, 这个统计的过程可能
需要使用 hadoop等大数据挖掘技术完成). 从⽽就可以得到 "⾼频词表" 。
实时生成:
先给缓存设定容量上限(可以通过 Redis 配置⽂件的 maxmemory 参数设定).
接下来把⽤⼾每次查询:
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值