关于redis:分布式缓存Redis

为什么这么快?

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

利用场景

setnx实现分布式锁

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

过期策略

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

内存淘汰机制

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

长久化

底层数据结构

渐进式rehash

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

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理