
redis缓存
文章平均质量分 55
weixin_51729392
这个作者很懒,什么都没留下…
展开
-
redis缓存——缓存击穿原理及解决方法
缓存击穿是指在缓存系统中,某一个热点数据过期或被删除后,恰好在此时有大量并发请求访问该数据,导致请求直接穿透缓存,直接访问数据库或其他后端存储系统,造成后端系统的压力过大,甚至引起系统崩溃。3. 不存在的数据访问:当请求访问一个不存在的数据时,正常情况下应该从后端系统加载数据并生成缓存,但在并发请求中,可能同时有多个请求到达,导致多次访问后端系统。1. 热点数据的缓存失效:当缓存中保存的热点数据过期或被删除时,此时大量的请求同时到达,需要重新从后端系统加载数据到缓存,造成并发访问高峰。原创 2023-08-11 22:05:32 · 239 阅读 · 1 评论 -
redis缓存———数据过期策略
惰性删除:访问key的时候判断是否过期,如果过期,则删除定期删除:定期检查一定量的key是否过期(slow模式+fast模式)注意:在实际的开发中,惰性删除+定期删除两种策略往往进行配合使用。原创 2023-08-12 18:30:49 · 259 阅读 · 1 评论 -
redis缓存——缓存雪崩原理及解决方法
缓存雪崩是一种常见的缓存问题,但通过合理的缓存策略、分布式锁、异步加载、多级缓存以及监控预警等措施,可以有效地预防和应对缓存雪崩,保证系统的稳定性和性能。缓存雪崩是指在缓存系统中,大量缓存对象在同一时间失效或过期,导致大量请求直接打到后端存储系统上,造成后端系统的压力骤增,甚至引起系统崩溃。4. 多级缓存策略:可以采用多级缓存的策略,将缓存对象分散存储在不同级别的缓存中,以降低单一缓存失效对整个系统的影响。3. 异步加载缓存:可以在缓存失效前,提前异步加载缓存,使得缓存始终可用,避免雪崩效应。原创 2023-08-12 10:35:18 · 318 阅读 · 1 评论 -
redis缓存——双写一致
针对以上分布式锁出现的问题,我们可以对此进行优化,一般情况下,针对缓存中的数据都有读多写少的特点,针对此特点,我们可以通过读写锁来控制。相比分布式锁,此方法在性能上有了较大的提升,同样可以保证数据的强一致性。由上图可以看出,添加分布式锁后,当线程1写数据操作完成并且释放锁以后,线程2才可以开始执行,因此,这种方法有效的保证的数据的强一致性,但性能会比较低。延时双删可以在某种程度上有效的避免缓存、数据库数据的不一致的问题,但依旧存在有脏数据风险,此方法可以大大降低产生脏数据的方向,但是无法避免产生脏数据。原创 2023-08-12 11:46:55 · 134 阅读 · 1 评论 -
redis缓存——缓存穿透原理及解决方法
缓存穿透是一种指在缓存系统中,请求的数据无论在缓存中还是在数据库中都不存在,导致请求每次都要访问数据库,增加了系统的负载和延迟。缓存穿透的攻击通常是攻击者发送大量的恶意请求,请求的键在缓存中都不存在,这样每次请求都会绕过缓存直接访问数据库,从而引起数据库的压力过大。例如,在将数据存入缓存之前没有做有效的校验,导致无效的请求能够绕过缓存直接访问数据库。布隆过滤器的优点是占用空间小,查询速度快,因为它可以将元素表示为位数组,且查询只需要计算哈希值和检查对应的位值就可以得出结果。原创 2023-08-11 21:48:52 · 111 阅读 · 2 评论 -
redis缓存———持久化
Redis 提供了两种主要的持久化机制——RDB 快照和 AOF 日志。原创 2023-08-12 14:38:08 · 159 阅读 · 1 评论 -
redis缓存———数据淘汰策略
对于 Redis 这种使用内存来存储数据的缓存系统,当数据量增长超过内存大小时,可以采用缓存数据的淘汰机制来解决。这种机制包括两个主要步骤: 第一步是根据一定的策略,筛选出对应用访问来说“不重要”的数据。这样可以确保缓存中留下的数据是最有价值的数据,以便提高缓存命中率和应用的响应速度。 第二步是将这些被筛选出的“不重要”数据从缓存中删除,为新的数据腾出空间。这样可以保持缓存的可用空间,继续缓存对应用访问频率高的数据。常见的数据淘汰策略有: LRU(Least原创 2023-08-12 19:39:12 · 310 阅读 · 1 评论