![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis篇
文章平均质量分 85
stay_2003
编程是爱好
展开
-
Redis篇-详解双写一致
话不多说,直接百度:确保数据库和缓存中的数据是一致的!双写不一致是分布式系统中常见的问题之一,特别是在使用缓存数据库时更容易出现。为了解决这个问题,我们可以采取一些策略,如延迟双删、先更新数据库后删除缓存、使用分布式锁等。在实际应用中,我们需要根据具体的场景和需求来选择合适的解决方案,并不断地优化和改进我们的系统以保证数据的一致性。尽量减少缓存和数据库之间的数据同步需求。可以考虑将部分数据存储在缓存中,而另一部分数据则直接存储在数据库中,以减少同步操作。使用可靠的消息队列。原创 2024-04-07 18:04:46 · 2274 阅读 · 0 评论 -
Redis篇-缓存穿透,缓存击穿,缓存雪崩
缓存穿透就是查询一个不存在的数据MySQL查不到,也不会缓存到Redis,导致每次请求都需要查数据库,给数据库带来巨大压力缓存击穿问题也叫热点Key问题,就是一个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击。即:在key过期的时候,恰好这个时间点对这个key有大量的并发请求,这些请求会瞬间把数据库压垮缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。原创 2024-04-03 17:55:02 · 779 阅读 · 1 评论 -
Redis篇-优惠券异步秒杀思路
我们将耗时比较短的逻辑判断放入到redis中,比如是否库存足够,比如是否一人一单,这样的操作,只要这种逻辑可以完成,就意味着我们是一定可以下单完成的,我们只需要进行快速的逻辑判断,根本就不用等下单逻辑走完,我们直接给用户返回成功, 再在后台开一个线程,后台线程慢慢的去执行queue里边的消息,这样程序不就超级快了吗?那我们可以不可以使用异步编排来做,或者说我开启N多线程,N多个线程,一个线程执行查询优惠卷,一个执行判断扣减库存,一个去创建订单等等,然后再统一做返回,这种做法怎么样?4、校验是否是一人一单。原创 2024-04-03 11:57:13 · 365 阅读 · 1 评论