乐趣区

关于redis:分布式缓存Redis

为什么这么快?

纯内存
单线程,防止了多线程上下文切换
IO 多路复用

利用场景

setnx 实现分布式锁

zset 实现延时队列
如订单超时未领取,勾销订单,复原库存。
生产者:新下的订单放入延时队列,score 为到期解决工夫。
消费者:用一个线程轮询延时队列,判断以后工夫是否超过到期工夫,若超出,则从队列中删除订单。

过期策略

定时
定期
惰性
redis:定期 + 惰性

内存淘汰机制

noeviction
allkeys-lru
allkeys-random
volatile-lru
volatile-random
votatile-ttl

长久化

底层数据结构

渐进式 rehash

传统的 hash 表在扩容迁徙数据 (rehash) 时,如果 hash 表数据量很大,一次性拷贝到新表中,务必消耗很长时间。
何为渐进式 rehash?就是把拷贝节点数据的过程平摊到后续的操作中,而不是一次性拷贝。

缓存雪崩、缓存穿透、缓存击穿

退出移动版