1970-01-01

25 缓存异常(上):如何解决缓存和数据库的数据不一致问题?在实际应用 Redis 缓存时,我们经常会遇到一些异常问题,概括来说有 4 个方面:缓存中的数据和数据库中的不一致;缓存雪崩;缓存击穿和缓存穿透。 只要我们使用 Redis 缓存,就必然会面...

1970-01-01

26 缓存异常(下):如何解决缓存雪崩、击穿、穿透难题?上节课,我们学习了缓存和数据库的数据不一致问题和应对方法。除了数据不一致问题,我们常常还会面临缓存异常的三个问题,分别是缓存雪崩、缓存击穿和缓存穿透。这三个问题一旦发生,会导致大量的请求积压到数...

1970-01-01

27 缓存被污染了,该怎么办?我们应用 Redis 缓存时,如果能缓存会被反复访问的数据,那就能加速业务应用的访问。但是,如果发生了缓存污染,那么,缓存对业务应用的加速作用就减少了。 那什么是缓存污染呢?在一些场景下,有些数据被访问的次数非常少,甚至...

1970-01-01

28 Pika:如何基于SSD实现大容量Redis?我们在应用 Redis 时,随着业务数据的增加(比如说电商业务中,随着用户规模和商品数量的增加),就需要 Redis 能保存更多的数据。你可能会想到使用 Redis 切片集群,把数据分散保存到多个实...

1970-01-01

30 如何使用Redis实现分布式锁?上节课,我提到,在应对并发问题时,除了原子操作,Redis 客户端还可以通过加锁的方式,来控制并发写操作对共享数据的修改,从而保证数据的正确性。 但是,Redis 属于分布式系统,当有多个客户端需要争抢锁时,我们...

1970-01-01

31 事务机制:Redis能实现ACID属性吗?事务是数据库的一个重要功能。所谓的事务,就是指对数据进行读写的一系列操作。事务在执行时,会提供专门的属性保证,包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolatio...

1970-01-01

29 无锁的原子操作:Redis如何应对并发访问?我们在使用 Redis 时,不可避免地会遇到并发访问的问题,比如说如果多个用户同时下单,就会对缓存在 Redis 中的商品库存并发更新。一旦有了并发写操作,数据就会被修改,如果我们没有对并发写请求做好...

1970-01-01

32 Redis主从同步与故障切换,有哪些坑?Redis 的主从同步机制不仅可以让从库服务更多的读请求,分担主库的压力,而且还能在主库发生故障时,进行主从库切换,提供高可靠服务。 不过,在实际使用主从机制的时候,我们很容易踩到一些坑。这节课,我就向你...

1970-01-01

34 第23~33讲课后思考题答案及常见问题答疑今天,又到了我们的答疑时间,我们一起来学习下第 23~33 讲的课后思考题。同时,我还会给你讲解两道典型问题。 课后思考题答案第 23 讲问题:Redis 的只读缓存和使用直写策略的读写缓存,都会把数据...

1970-01-01

33 脑裂:一次奇怪的数据丢失在使用主从集群时,我曾遇到过这样一个问题:我们的主从集群有 1 个主库、5 个从库和 3 个哨兵实例,在使用的过程中,我们发现客户端发送的一些数据丢失了,这直接影响到了业务层的数据可靠性。 通过一系列的问题排查,我们才知...

1101112131466