缓存简介
缓存,让数据更接近于使用者;
工作机制是:先从缓存中读取数据,如果没有再从慢速设备上读取实际数据(数据也会存入缓存);
缓存什么:那些经常读取且不经常修改的数据/那些昂贵(CPU/IO)的且对于相同的请求有相同的计算结果的数据。如CPU--L1/L2--内存--磁盘就是一个典型的例子,CPU需要数据时先从L1/L2中读取,如果没有到内存中找,如果还没有会到磁盘上找。还有如用过Maven的朋友都应该知道,我们找依赖的时候,先从本机仓库找,再从本地服务器仓库找,最后到远程仓库服务器找;还有如京东的物流为什么那么快?他们在各个地都有分仓库,如果该仓库有货物那么送货的速度是非常快的。
缓存命中率
即从缓存中读取数据的次数 与 总读取次数的比率,命中率越高越好:
命中率 = 从缓存中读取次数 / (总读取次数[从缓存中读取次数 + 从慢速设备上读取的次数])
Miss率 = 没有从缓存中读取的次数 / (总读取次数[从缓存中读取次数 + 从慢速设备上读取的次数])
这是一个非常重要的监控指标,如果做缓存一定要健康这个指标来看缓存是否工作良好;
缓存策略
Eviction policy
移除策略,即如果缓存满了,从缓存中移除数据的策略;常见的有LFU、LRU、FIFO:
FIFO(First In First Out):先进先出算法,即先放入缓存的先被移除;
LFU(Least Frequently Used):最久未使用算法,使用时间距离现在最久的那个被移除;
LRU(Least Recently Used):最近最少使用算法,一定时间段内使用次数(频率)最少的那个被移除;
TTL(Time To Live )
存活期,即从缓存中创建时间点开始直到它到期的一个时间段(不管在这个时间段内有没有访问都将过期)
TTI(Time To Idle)
空闲期,即一个数据多久没被访问将从缓存中移除的时间。
分享到:
相关推荐
处理缓存的基本知识涵盖了多个方面,包括缓存的原理、类型、使用策略以及与数据库的交互等。接下来,我们将深入探讨这些关键概念。 首先,缓存的基本原理是将常用数据或计算结果暂存于快速访问的存储介质中,以便...
4. **缓存机制** - 文章可能会讲解缓存的基本原理,如缓存击穿、缓存穿透和缓存雪崩等问题,以及解决策略。 5. **性能对比** - 对比这三种缓存技术在吞吐量、响应时间、内存利用率等方面的性能差异。 6. **使用...
【PHP Memcached缓存技术详解】 在Web开发中,数据缓存是一种常用的技术手段,用于提升网站性能,减少数据库负载。PHP Memcached扩展是PHP与Memcached缓存服务器交互的一个接口,它允许开发者将数据存储在内存中,...
时间戳“20120102”可能指的是资料的创建日期,暗示了这是较早时期的资料,但Memcached的基本原理和技术仍然适用于现代开发。 **描述分析:** 描述中提到,这是作者收藏三年的资源,包含了多次系统和软件项目实施...
**memcached缓存技术详解** `memcached` 是一个高性能的分布式内存对象缓存系统,它广泛应用于Web应用中以减轻数据库的负载。通过将数据存储在内存中,memcached可以快速提供数据,从而提高应用的响应速度。本文将...
标题中的“memcached缓存组件资料.rar”暗示了这是一个包含有关Memcached缓存系统的学习资源包,可能包括配置教程、代码示例以及平台安装指南等内容。描述中提到的“包含Linux、Windows、iOS平台的配置”,意味着这...
### Memcached中文学习文档知识点详解 #### 一、Memcached简介 Memcached是一种高性能的分布式内存对象缓存系统,用于加速动态Web应用程序通过减轻数据库负载。它通过在内存中缓存数据和对象来减少数据库访问的频率...
Memcached是一种高性能、分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提高网站性能。它通过将数据和对象存储在服务器的内存中,而不是每次请求时都查询数据库,从而显著提高了读取速度。这里我们将...
除了基本的数据存储和检索命令外,Memcached还提供了一系列其他命令,如flush_all(清空所有缓存数据)、stats(获取服务器状态信息)、version(获取服务器版本信息)等。 ### 二、使用Memcached客户端库 #### ...
学习和使用这样的Python memcached客户端库,不仅需要掌握Python语言和memcached的基本概念,还需要理解缓存系统的设计原则,以及如何通过编程技巧来优化性能。对于大型Web应用而言,合理地使用缓存是提高响应速度、...
**memcached知识点详解** 1. **memcached概述**:memcached是一款高性能、分布式内存对象缓存系统,最初由LiveJournal的Dmitry Vovkunov开发,用于减轻数据库负载,提升Web应用的响应速度。它支持多语言,尤其在PHP...
"memcached for win32" 指的是 Memcached 数据库缓存系统的一个版本,专为在 Windows 32 位操作系统上运行而设计。Memcached 是一个广泛使用的开源分布式内存对象缓存系统,它能够提高 Web 应用程序的性能,通过在...
通过以上内容,我们了解了memcached的基本概念、安装与使用方法,特别是在Windows环境下如何利用提供的资源进行安装和管理。如果你需要在Windows 10系统上部署memcached,可以参考提供的文档和执行文件进行操作。
标题"memcached和activeMQ的JAVA示例代码"表明这是一个关于使用Java编程语言实现的,针对memcached缓存系统和activeMQ消息中间件的示例项目。这通常是为了帮助开发者理解如何在实际应用中整合这两种技术。 描述中的...
分布式缓存系统,如Redis和Memcached,常用于处理大量并发请求和大数据量的场景。这些系统提供了高可用性和可扩展性,支持多种数据结构,如字符串、哈希、列表、集合等,是构建高性能Web服务的重要组件。 缓存失效...
“memcached安装及java应用使用memcached”这一标题暗示了我们要讨论的是一个关于分布式内存缓存系统——memcached的安装过程以及如何在Java应用程序中使用它。Memcached是一个高性能、轻量级的分布式内存对象缓存...
Memcached是一种高性能的分布式内存对象缓存系统,用于减少数据库负载,提高网站性能。Java连接Memcached的驱动包使得Java开发者能够方便地与Memcached进行交互,实现数据的快速读写。这个驱动包包含了丰富的功能和...