Study notes
事务机制:Redis能实现ACID属性吗? 事务机制:Redis能实现ACID属性吗?
事务是数据库的一个重要功能。所谓的事务,就是指对数据进行读写的一系列操作。事务在执行时,会提供专门的属性保证,包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),
2024-09-17
如何使用Redis实现分布式锁? 如何使用Redis实现分布式锁?
上节课,我提到,在应对并发问题时,除了原子操作,Redis 客户端还可以通过加锁的方式,来控制并发写操作对共享数据的修改,从而保证数据的正确性。 但是,Redis 属于分布式系统,当有多个客户端需要争抢锁时,我们必须要保证,这把锁不能是某个
2024-09-17
无锁的原子操作:Redis如何应对并发访问? 无锁的原子操作:Redis如何应对并发访问?
我们在使用 Redis 时,不可避免地会遇到并发访问的问题,比如说如果多个用户同时下单,就会对缓存在 Redis 中的商品库存并发更新。一旦有了并发写操作,数据就会被修改,如果我们没有对并发写请求做好控制,就可能导致数据被改错,影响到业务的
2024-09-17
缓存异常(下):如何解决缓存雪崩、击穿、穿透难题? 缓存异常(下):如何解决缓存雪崩、击穿、穿透难题?
上节课,我们学习了缓存和数据库的数据不一致问题和应对方法。除了数据不一致问题,我们常常还会面临缓存异常的三个问题,分别是缓存雪崩、缓存击穿和缓存穿透。这三个问题一旦发生,会导致大量的请求积压到数据库层。如果请求的并发量很大,就会导致数据库宕
2024-09-17
缓存异常(上):如何解决缓存和数据库的数据不一致问题? 缓存异常(上):如何解决缓存和数据库的数据不一致问题?
在实际应用 Redis 缓存时,我们经常会遇到一些异常问题,概括来说有 4 个方面:缓存中的数据和数据库中的不一致;缓存雪崩;缓存击穿和缓存穿透。 只要我们使用 Redis 缓存,就必然会面对缓存和数据库间的一致性保证问题,这也算是 Red
2024-09-17
替换策略:缓存满了怎么办? 替换策略:缓存满了怎么办?
Redis 缓存使用内存来保存数据,避免业务应用从后端数据库中读取数据,可以提升应用的响应速度。那么,如果我们把所有要访问的数据都放入缓存,是不是一个很好的设计选择呢?其实,这样做的性价比反而不高。 举个例子吧。MySQL 中有 1TB 的
2024-09-17
旁路缓存:Redis是如何工作的? 旁路缓存:Redis是如何工作的?
我们知道,Redis 提供了高性能的数据存取功能,所以广泛应用在缓存场景中,既能有效地提升业务应用的响应速度,还可以避免把高并发大压力的请求发送到数据库层。 但是,如果 Redis 做缓存时出现了问题,比如说缓存失效,那么,大量请求就会直接
2024-09-17
消息队列的考验:Redis有哪些解决方案? 消息队列的考验:Redis有哪些解决方案?
现在的互联网应用基本上都是采用分布式系统架构进行设计的,而很多分布式系统必备的一个基础软件就是消息队列。 消息队列要能支持组件通信消息的快速读写,而 Redis 本身支持数据的高速访问,正好可以满足消息队列的读写性能需求。不过,除了性能,消
2024-09-16
如何在Redis中保存时间序列数据? 如何在Redis中保存时间序列数据?
我们现在做互联网产品的时候,都有这么一个需求:记录用户在网站或者 App 上的点击行为数据,来分析用户行为。这里的数据一般包括用户 ID、行为类型(例如浏览、登录、下单等)、行为发生的时间戳: 1UserID, Type, TimeStam
2024-09-16
1 / 3