缓存在应用中经常可以遇到,大的可以表现为分布式缓存服务和外部的缓存服务应用,小的可以使用应用级的缓存。
缓存的主要作用,一是可以加快热点数据访问速度,二是保护后端的数据库不被突然增长的压力压垮,三是减少计算,是以空间换时间的典型应用。
从分类上来说,缓存可以分为外部缓存服务和应用缓存。
外部缓存服务可以表现为MemCache、Redis、MongoDB等。
应用缓存可以使用HashMap自实现,也可以使用Guava的缓存Cache。
缓存的失效策略:
1. Timeout算法,设置有效期,超时失效。
2. LRU(Least Recently Used)算法,最近最少使用的缓存先失效,是依据时间来判断是否应失效。
LRU算法并不太科学,因为使用时间来判断缓存是否应失效,会导致最新的缓存存在,但是却有可能,最新 的缓存的使用频率并不高,并不是热点数据。
实现可使用链表来实现,最近使用的数据,放入链表头,需要移除数据时,从链表尾移除。LinkedHashMap 的实现支持这一算法。
4. LFU算法(Least Frequently Used),最近最少使用次数算法,是依据使用的次数来做判断。
3. FIFO算法,最先进入的缓存最先移除。
缓存的一致性:
需要在数据源更新时,同时通知缓存更新,否则出现缓存和数据源数据不一致的情况。
其他的缓存分类还有Http缓存、页面缓存、数据库缓存等,有兴趣的可以自行去网上搜索学习。
相关推荐
# MySQL篇内容 - 一条SQL语句的执行流程 - InnoDB数据读取和写入过程 - 基本数据结构介绍 - MyIsAM InnoDB 等存储引擎 - 索引类型和方式、聚簇和非聚簇索引 ...- 缓存雪崩、缓存击穿、缓存穿透 ......
今天我们来展开聊一下在开发中对于缓存经常会遇到的三个问题,也是在面试题中经常会被问到的高频知识点!也就是缓存穿透、缓存击穿、缓存雪崩的知识以及其相对应的解决方案! 本章共讲解了缓存的三种异常情况,上述...
Swift5.0简仿微信聊天,完美支持表情键盘、单聊、群聊、本地消息会话缓存、朋友圈、黑夜模式.zip
大家好,欢迎大家来到算法数据结构专题,今天我们和大家聊一个非常常用的算法,叫做LRU。 LRU的英文全称是Least Recently Used,也即最不经常使用。我们看着好像挺迷糊的,其实这个含义要结合缓存一起使用。对于工程...
1、完整的大型电商详情页系统架构:不再只是关注电商详情页架构中的缓存架构部分,而是关注全链路、全流程的完整架构,对完整的架构进行设计以及开发,包括了动态渲染系统、OneService系统、前端页面、大型工程运维...
:fire: 100,000〜4,000,000 QPS,使用二进制搜索技术/《 VPCS架构》德塔公司开源缓存服务器存储上亿级量子碎片,带有并发映射表的微型Java线程小型安全HTTP json高速缓存服务器,并发映射表,2分法字符串索引,高...
瓷砖架 地图切片的简单内存缓存同步返回瓷砖。 如果请求的 z/x/y 索引处的 tile 还没有在内存中,tile-rack 将: 返回父图块以及裁剪和缩放信息,以便您可以拉伸它以覆盖您请求的图块区域请求正确的 tile(来自提供...
本文章为让装机零基础的朋友可以轻松了解,所以尽量避免专业参数。今天我们了解一下CPU频率以及制造工艺与性能的关系。
CS 2200缓存模拟器 版权所有(c)2017,Ctrl + Alt + Delicious 该应用程序用作教育工具,可帮助用户可视化和了解的内部工作原理。 它的主要目的是帮助学生参加佐治亚理工学院的计算机系统和网络入门(CS 2200)...
Aspect Cache是一个针对Spring Boot,基于AOP注解方式的轻量级缓存,目前支持EHCache,Redis缓存方式。数据类型支持POJO、Map和List数据类型,同时支持自定义缓存key解析,也支持自定义的缓存处理方式,或者扩展支持...
从单体应用架构到分布式应用架构再到微服务架构,应用的安全访问在...请求一般会通过一个权限的拦截器进行权限的校验,在登录时将用户信息缓存到session中,后续访问则从缓存中获取用户信息。而微服务架构下,一个应用
如果您对通过环聊进行快速介绍感兴趣,请查看并给我发送电子邮件。目录有关该库如何工作以及如何调试的更多信息,请查看 。产品特点自动缓存所有数据库查询高粒度智能缓存无效使用现有代码,安装后无需更改仅缓存...
6、参与聊天用户必须登录,不聊的话可以直接退出;7、提供私聊、公开聊天两种模式;8、聊天内容以颜色区分,绿色为自己发言,黄色为别人对你发言,灰色为别人对其他人,白色为对所有人;9、支持SQL、access两种...
Interceptors 一些与业务相关的okhttp拦截器 导入 项目的build.gradle添加: allprojects { repositories { ... ...而有时候出于业务或者其他的因素,我们需要在app端控制缓存,并且可能还需要缓
项目技术栈: 前端: 用Dcloud 的 uni-app全系,基于vue.js和微信小程序开发模式。...redis缓存,特定模块用sqllite缓存模块数据。 mysql、mongodb 数据库。 JWT进行用户验证。 使用 http 进行发送文件
提供给需要它的朋友,希望它可以帮助大家更轻松的完成开发的工作. 关于cmlphp的介绍也可以看看我的这篇文章:再来聊聊cmlphp V2.x CmlPHP V2.x 是一个免费的遵循apache协议的全能型php开源框架 CmlPHP V2.x 是...
lru-cache:C ++中功能完整的LRU缓存实现
将草稿条目中已删除或隐藏的条目从 habr.com 重定向到 ITnan、SoHabr、SavePearlHarbor 和 Google 缓存。 基于的。 使用 SoHabr 的代码由提供。 识别公司博客中的“找不到页面”(无法访问的帖子页面与正常页面...
1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载体验!下载完使用问题请私信... 好友间可以私聊,所有私聊信息缓存 添加好友时被添加方若在线,收到消息提示 好友间私聊时,另一方若在线,自动弹出聊天界面