高可用缓存设计

本文探讨了高可用缓存的设计,包括缓存回收策略如空间限制、TTL和TTI,以及FIFO和LRU等回收算法。讨论了Java缓存类型如堆缓存、堆外缓存和分布式缓存的优缺点。提到了缓存使用模式实践,如空对象模式、Cache-Aside及其并发问题。还介绍了业务解耦的read-through、write-through和write-behind策略。此外,涵盖了Nginx缓存、分布式缓存与负载均衡的策略,以及缓存更新的原子化方法和缓存崩溃恢复方案。
摘要由CSDN通过智能技术生成

缓存回收策略
1.基于空间,比如10M
2.TTL,比如设置过期时间,惰性删除
3.TTI,多久没被访问后删除
4.弱引用(强软弱虚)

回收算法
FIFO,LRU(掌握原理,链表+哈希),LFU

Java缓存类型
1.堆缓存(guava)
优点:没有序列化与反序列化,最快
缺点:受堆内存大小限制,不能设置太大,会影响GC

2.堆外缓存(Ehcache)
优点:堆外对象不会影响GC
缺点:需要序列化反序列化,比堆缓存慢

3.磁盘缓存
优点:数据持久化
缺点:比较慢

4.分布式缓存
优点:容量大
缺点:需要引入Redis等中间件,增加系统复杂度

缓存使用模式实践
1.空对象模式,避免缓存击穿
2.Cache-Aside
读:
Cache-Aside 读模式
写:
Cache-Aside写模式<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值