随笔 - 173,  文章 - 0,  评论 - 0,  阅读 - 10万

R2M缓存是读缓存到内存中的一种方式,全称是Read To Memory。

它的基本思想是:

1. 只缓存频繁读取的热数据到内存中,冷数据不缓存。
2. 内存中缓存的数据是只读的,不支持修改操作。
3. 当内存中的缓存数据失效或被淘汰时,需要从数据库重新读取数据到缓存。

R2M缓存的主要优点是:

1. 只缓存热数据,避免缓存冷数据浪费内存,所以可以在有限的内存中缓存更多的热数据。

2. 由于内存中的数据是只读的,所以可以避免缓存与数据库双写的问题,简化了缓存一致性解决方案。

3. 内存中的数据是临时的,失效后会被重新加载,这可以避免内存中的数据长期不一致的问题。

R2M缓存的主要缺点是:

1. 需要频繁地从数据库加载数据到缓存,会带来额外的性能开销。

2. 内存中的数据是临时的,无法持久化,重启服务会导致所有缓存数据丢失,需要重新加载。

3. 不支持数据修改操作,无法满足所有场景的需求。

所以,R2M缓存适用于:

1. 读请求远大于写请求的场景,大部分数据变更不频繁。

2. 对性能和一致性都有较高要求的场景。

3. 内存空间受限,无法将所有热数据长期缓存在内存中的场景。

 

R2M缓存通常会与其他缓存策略结合使用, 例如:

1. 使用R2M缓存读请求,使用传统缓存写请求。

2. R2M缓存作为第一级缓存,命中不到时查找二级缓存和数据库。

3. 使用R2M缓存缓存热点数据,使用其他策略缓存全部数据。

R2M缓存作为一种读缓存策略,可以很好地平衡性能、内存利用率与数据一致性,适用于许多实际的应用场景。

posted on   黑熊一只  阅读(350)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2017-04-26 关于join on 和单表查询的实时效果
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示