自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 redis分布式锁———使用场景

如上图所示,出现了超卖的问题,假设在线程1、2都未执行前,库存的数量为1,此时,线程1执行了查询优惠券操作,与此同时,线程2紧跟线程1也执行了查询操作(线程交替执行),此时,两个线程都查到了库存为1的数据,而线程1首先判断了库存充足并且执行了扣减库存的操作,如此,库存变成了0,当线程2再去拿之前查到的库存为1的数据进行判断的时候,依然是库存充足扣减库存,但是,此时库存的真实值已经变成0,再进行扣减是库存值就变成了-1。如果是单体项目并且只启动一台服务以上方法是没问题的!如果项目是服务集群部署,如下图所示。

2023-08-12 21:59:38 693 1

原创 redis缓存———数据淘汰策略

对于 Redis 这种使用内存来存储数据的缓存系统,当数据量增长超过内存大小时,可以采用缓存数据的淘汰机制来解决。这种机制包括两个主要步骤: 第一步是根据一定的策略,筛选出对应用访问来说“不重要”的数据。这样可以确保缓存中留下的数据是最有价值的数据,以便提高缓存命中率和应用的响应速度。 第二步是将这些被筛选出的“不重要”数据从缓存中删除,为新的数据腾出空间。这样可以保持缓存的可用空间,继续缓存对应用访问频率高的数据。常见的数据淘汰策略有: LRU(Least

2023-08-12 19:39:12 236 1

原创 redis缓存———数据过期策略

惰性删除:访问key的时候判断是否过期,如果过期,则删除定期删除:定期检查一定量的key是否过期(slow模式+fast模式)注意:在实际的开发中,惰性删除+定期删除两种策略往往进行配合使用。

2023-08-12 18:30:49 145 1

原创 redis缓存———持久化

Redis 提供了两种主要的持久化机制——RDB 快照和 AOF 日志。

2023-08-12 14:38:08 109 1

原创 redis缓存——双写一致

针对以上分布式锁出现的问题,我们可以对此进行优化,一般情况下,针对缓存中的数据都有读多写少的特点,针对此特点,我们可以通过读写锁来控制。相比分布式锁,此方法在性能上有了较大的提升,同样可以保证数据的强一致性。由上图可以看出,添加分布式锁后,当线程1写数据操作完成并且释放锁以后,线程2才可以开始执行,因此,这种方法有效的保证的数据的强一致性,但性能会比较低。延时双删可以在某种程度上有效的避免缓存、数据库数据的不一致的问题,但依旧存在有脏数据风险,此方法可以大大降低产生脏数据的方向,但是无法避免产生脏数据。

2023-08-12 11:46:55 77 1

原创 redis缓存——缓存雪崩原理及解决方法

缓存雪崩是一种常见的缓存问题,但通过合理的缓存策略、分布式锁、异步加载、多级缓存以及监控预警等措施,可以有效地预防和应对缓存雪崩,保证系统的稳定性和性能。缓存雪崩是指在缓存系统中,大量缓存对象在同一时间失效或过期,导致大量请求直接打到后端存储系统上,造成后端系统的压力骤增,甚至引起系统崩溃。4. 多级缓存策略:可以采用多级缓存的策略,将缓存对象分散存储在不同级别的缓存中,以降低单一缓存失效对整个系统的影响。3. 异步加载缓存:可以在缓存失效前,提前异步加载缓存,使得缓存始终可用,避免雪崩效应。

2023-08-12 10:35:18 225 1

原创 redis缓存——缓存击穿原理及解决方法

缓存击穿是指在缓存系统中,某一个热点数据过期或被删除后,恰好在此时有大量并发请求访问该数据,导致请求直接穿透缓存,直接访问数据库或其他后端存储系统,造成后端系统的压力过大,甚至引起系统崩溃。3. 不存在的数据访问:当请求访问一个不存在的数据时,正常情况下应该从后端系统加载数据并生成缓存,但在并发请求中,可能同时有多个请求到达,导致多次访问后端系统。1. 热点数据的缓存失效:当缓存中保存的热点数据过期或被删除时,此时大量的请求同时到达,需要重新从后端系统加载数据到缓存,造成并发访问高峰。

2023-08-11 22:05:32 99 1

原创 redis缓存——缓存穿透原理及解决方法

缓存穿透是一种指在缓存系统中,请求的数据无论在缓存中还是在数据库中都不存在,导致请求每次都要访问数据库,增加了系统的负载和延迟。缓存穿透的攻击通常是攻击者发送大量的恶意请求,请求的键在缓存中都不存在,这样每次请求都会绕过缓存直接访问数据库,从而引起数据库的压力过大。例如,在将数据存入缓存之前没有做有效的校验,导致无效的请求能够绕过缓存直接访问数据库。布隆过滤器的优点是占用空间小,查询速度快,因为它可以将元素表示为位数组,且查询只需要计算哈希值和检查对应的位值就可以得出结果。

2023-08-11 21:48:52 62 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除