
redis
文章平均质量分 78
远方并不远。
这个作者很懒,什么都没留下…
展开
-
Redis从理论到实战:使用Redis实现商铺查询缓存(逐步分析缓存更新策略)
缓存就是数据交换的缓冲区,是存贮数据的临时地方,一般读写性能较高。我们可以在很多地方做缓存,比如浏览器缓存、应用层缓存、数据库缓存等等。原创 2023-08-26 20:45:19 · 89 阅读 · 0 评论 -
Redis从理论到实战:用Redis解决缓存穿透、缓存击穿问题(提供解决方案)
缓存击穿问题也叫热点Key问题,就是一个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击。2、解决方案常见的解决方案有两种:互斥锁和逻辑过期。互斥锁:当线程1查询缓存未命中时,会获取一个互斥锁,然后查询数据库并重建缓存数据;在此期间,如果线程2查询缓存也未命中,并不会成功获取互斥锁(因为线程1正在使用),线程2会休眠并重试,直到线程1写入缓存释放锁;线程2缓存命中。原创 2023-08-26 20:29:04 · 93 阅读 · 0 评论 -
Redis之布隆过滤器与布谷鸟过滤器
大家都知道,在计算机中IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景:我们业务后端涉及数据库,当请求消息查询某些信息时,可能先检查缓存中是否有相关信息,有的话返回,如果没有的话可能就要去数据库里面查询,这时候有一个问题,如果很多请求是在请求数据库根本不存在的数据,那么数据库就要频繁响应这种不必要的IO查询,如果再多一些,数据库大多数IO都在响应这种毫无意义的请求操作,那么如何将这些请求阻挡在外呢?布隆过滤器(原创 2023-06-28 19:53:21 · 291 阅读 · 1 评论 -
基于Redis和MySQL的架构,如何保证数据一致性?
在这样一个架构中,会出现一个问题,就是一份数据,同时保存在数据库和Redis中,当数据发生变化的时候,需要同时更新Redis和MySQL,由于更新是有先后顺序的,这这种两边写入的环境下,并不能像单纯数据库的操作一样,可以满足ACID特性。那如果是先删除缓存,再更新数据库,理想情况是应用下次访问Redis的时候,发现Redis里面的数据是空的,就从数据库加载保存到Redis里面,那么数据是一致的。大家一定要记住,某个技术方案不可能适用于所有的业务场景,只有最合适的方案,没有最优的方案。原创 2023-06-28 19:38:31 · 92 阅读 · 1 评论