![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
缓存
文章平均质量分 93
hh6plus
这个作者很懒,什么都没留下…
展开
-
缓存与数据库一致性 笔记
缓存与数据库数据的一致性 是个老生常谈的问题。此文清晰地讲解了其中的问题和常规解法。关键点包括: 写缓存vs删缓存(写的并发问题风险较高,也有资源浪费风险,但相较读属于主动加载,具体还是结合业务场景确定) 先删缓存vs先写db(先删缓存有并发读写时造成不一致的风险;先写db也有并发读写时,极端情况读线程将旧值写入缓存的风险,但风险更低) 处理db主从延迟(对有读写分离+主从延迟的情况,删除需要延时删除) 处理删缓存失败(阻塞重试会影响线程耗时,做本地消息表太重,可以结合binlog+中间件做异步删除转载 2022-04-09 20:58:25 · 238 阅读 · 0 评论 -
Redis的分布式部署
该文章从存储的分布式部署常用思路出发,介绍了水平拆分、主从复制这两种核心思路,并介绍了redis的实现,分别是 水平拆分的实现:sharding,将key通过crc16哈希到16384个slot里。slot在redis集群部署好时就已经确定分布的机器。如果有新的master加入,需要迁移slot,会有MOVED、ASKING响应给客户端。 主从复制的实现:redis支持一主0从~多从,使用复制算法实现主从复制。 以下为原文。 学习笔记 | Redis 分布式部署方案_大虎牙的博客-CSDN博客_red转载 2022-04-09 19:10:11 · 1634 阅读 · 0 评论 -
缓存的大key热点key问题
一、缓存读热点key问题: 某个热点缓存model读取流量极大。带来问题: 读缓存问题:读流量集中到某key,导致指定缓存机器压力过大 写缓存问题:缓存失效时,大量线程穿透构建缓存,带来db和服务压力。 解决: 读缓存问题 将缓存在分布式服务机器做二次缓存 备份热点Key:即将热点Key+随机数,随机分配至Redis其他节点中。这样访问热点key的时候就不会全部命中到一台机器上了。 ...原创 2020-03-21 20:48:55 · 1250 阅读 · 0 评论 -
Tair
tair是淘宝提供的开源key-value服务,单机可承担万级QPS压力。 调用方法分为三类: 单个存取:put,get方法 批量存取:batchPut,batchGet方法 父子key存取:prefixMultiPut, prefixMultiGet方法。 就性能来看,父子key存取反而比批量存取性能要好些原创 2017-03-17 19:52:50 · 578 阅读 · 0 评论 -
EhCache
ehcache是springframework中提供的缓存解决方案。用EhCache可以轻松实现对某些资源的内存缓存,并进行定时更新及手动更新。 Spring与EhCache结合,通过注解的方式即可简单实现某个方法返回值的缓存。在获取数据库数据或者其他IO成本高的数据时,缓存很有必要。 EhCache的接入过程如下: 1. pom中添加依赖:原创 2017-03-17 19:53:06 · 305 阅读 · 0 评论 -
数据库和缓存组件的主要区别
持久化ID的方案方案一:缓存组件方案二:数据库备注对高频读写的支持 复杂查询 永久持久化 及 数据量太大时的系统负担 永久持久化的风险在于,数据量太大时可能导致系统故障。(数据库容量不足等)永久持久化的优点在于,可以留存数据。对于数据量太大的风险,可以通过定时任务检查数据库规模,设置报警阈值来规避。且目前的数据量不足以引发此问题。容灾备份能力 总结方案一灵活性强,适合支持高频的读写,适合存储...原创 2018-05-02 13:24:10 · 1414 阅读 · 0 评论