本文主要讨论这么几个问题:
(1)“缓存与数据库”需求缘起
(2)“淘汰缓存”还是“更新缓存”
(3)缓存和数据库的操作时序

一、需求缘起
  场景介绍
  缓存是一种提高系统读性能的常见技术,对于读多写少的应用场景,我们经常使用缓存来进行优化。例如对于用户的余额信息表account(uid, money),业务上的需求是:
  (1)查询用户的余额,SELECT money FROM account WHERE uid=XXX,占99%的请求
  (2)更改用户余额,UPDATE account SET money=XXX WHERE uid=XXX,占1%的请求
  由于大部分的请求是查询,我们在缓存中建立uid到money的键值对,能够极大降低数据库的压力。

  读操作流程
  有了数据库和缓存两个地方存放数据之后(uid->money),每当需要读取相关数据时(money),操作流程一般是这样的:
  (1)读取缓存中是否有相关数据,uid->money
  (2)如果缓存中有相关数据money,则返回【这就是所谓的数据命中“hit”】
  (3)如果缓存中没有相关数据money,则从数据库读取相关数据money【这就是所谓的数据未命中“miss”】,放入缓存中uid->money,再返回
缓存的命中率 = 命中缓存请求个数

Cache Aside Pattern(缓存模式)相关推荐

  1. 缓存模式(Cache Aside、Read Through、Write Through、Write Behind)

    概览 缓存是一个有着更快的查询速度的存储技术,这里的更快是指比起从初始的数据源查询(比如数据库,以下都称作数据库)而言.我们经常会把频繁请求的或是耗时计算的数据缓存起来,在程序收到请求这些数据的时候可 ...

  2. 微软BI 之SSIS 系列 - Lookup 组件的使用与它的几种缓存模式 - Full Cache, Partial Cache, NO Cache...

    开篇介绍 先简单的演示一下使用 Lookup 组件实现一个简单示例 - 从数据源表 A 中导出数据到目标数据表 B,如果 A 数据在 B 中不存在就插入新数据到B,如果存在就更新B 和 A 表数据保持 ...

  3. 缓存读写策略 Cache Aside Pattern,开发必备

    我们在前面讲到了当我们业务面临大量写并发的时候,将数据库开发成分布式存储系统,然后又介绍了NoSql数据库与关系型数据库互相配合,以用来更好的服务与我们的业务发展.但随着并发的持续增加,存储数据量的增 ...

  4. 如果不知道这4种缓存模式,敢说懂缓存吗?

    概述 在系统架构中,缓存可谓提供系统性能的最简单方法之一,稍微有点开发经验的同学必然会与缓存打过交道,最起码也实践过. 如果使用得当,缓存可以减少响应时间.减少数据库负载以及节省成本.但如果缓存使用不 ...

  5. 4种常见的缓存模式,你都知道吗?

    概述 在系统架构中,缓存可谓提供系统性能的最简单方法之一,稍微有点开发经验的同学必然会与缓存打过交道,最起码也实践过. 如果使用得当,缓存可以减少响应时间.减少数据库负载以及节省成本.但如果缓存使用不 ...

  6. 缓存更新的Design Pattern -- 缓存专题(2)

    黄粱一梦终须醒, 无根无极本归尘. 金龙飞天归何处, 不如凡间做真人! 上个周忙活了一周上线工作,因为银行的行业性质,与国家安全.国家政策强相关.所以对上线版本的质量要求都很高,因而每一次上线前担惊害 ...

  7. 应用多级缓存模式支撑海量读服务

    缓存技术是一个老生常谈的问题,但是它也是解决性能问题的利器,一把瑞士军刀:而且在各种面试过程中或多或少会被问及一些缓存相关的问题,如缓存算法.热点数据与更新缓存.更新缓存与原子性.缓存崩溃与快速恢复等 ...

  8. SQLite剖析之异步IO模式、共享缓存模式和解锁通知

    1.异步I/O模式     通常,当SQLite写一个数据库文件时,会等待,直到写操作完成,然后控制返回到调用程序.相比于CPU操作,写文件系统是非常耗时的,这是一个性能瓶颈.异步I/O后端是SQLi ...

  9. cache tier 分级缓存

    一图描述 cache tier: Ceph 缓存层将冷热数据分离,以快速存储设备作为缓存层,低速廉价存储设备作为存储层 提升 IO 性能 使用两个 pool,作为存储层和缓存层,缓存层覆盖在存储层上, ...

  10. Firefox火狐浏览器web开发调试开启强制刷新缓存模式

    Firefox火狐浏览器web开发调试开启强制刷新缓存模式 最近做项目的时候,在火狐浏览器发现缓存难清理,用Ctrl+F5 Ctrl+R 等在谷歌和IE浏览器的快捷键没用,搜索了一下,发现火狐清理缓存 ...

最新文章

  1. 找论文太难?试试这款「文本生成」论文搜索工具
  2. 我们遇到困难怎么办?
  3. PHP的empty isset is_null
  4. 常用音频软件:Wavesufer
  5. python嵌套列表字典_python中嵌套列表转为字典
  6. sql 两个 in_SQL基础知识——IN运算符
  7. java c s聊天程序_Java建立C/S 模式聊天室服务器和客户端
  8. php 网站api,php – 如何调节网站的API用户?
  9. (65)-- 爬取兄弟连老师信息
  10. 中国无线充电行业发展规模与投资可行性咨询报告2022-2027年版
  11. 民航订票管理系统设计
  12. OpenG绘图方式比较
  13. 最简单明了的QT服务器搭建
  14. Python为何能上位碾压Java?
  15. 如何获取sha1值和MD5值
  16. 如何释放磁盘空间在您的Mac
  17. Linux常用命令——newusers命令
  18. 《深入理解大数据:大数据处理与编程实践》一一1.2 大数据处理技术简介
  19. 计算机主机突然断电有什么影响,台式机突然断电有什么危害
  20. 记一次阿里云ECS服务器centos6.5无法使用epel源的爬坑

热门文章

  1. List元素互换,List元素转换下标,Java Collections.swap()方法实例解析
  2. 2022-2028年中国涤纶市场投资分析及前景预测报告
  3. 2021年中国服装行业分析报告-产业规模现状与发展规划趋势
  4. 《将要淘汰的八种人》读后感
  5. LeetCode简单题之增量元素之间的最大差值
  6. LeetCode简单题之重新分配字符使所有字符串都相等
  7. 全文翻译(三) TVM An Automated End-to-End Optimizing Compiler
  8. 编写可调模板并使用自动调谐器
  9. nvJPEG Codec库
  10. 2021年大数据ELK(二十三):Kibana简介