`

Java缓存类型

    博客分类:
  • JVM
 
阅读更多

原创转载请注明出处:http://agilestyle.iteye.com/blog/2369544

 

Java缓存类型

堆缓存

使用Java堆内存来存储缓存对象。使用堆缓存的好处是没有序列化/反序列化,是最快的缓存。缺点也很没明显,当缓存的数据量很大时,GC暂时时间会变长,存储容量受限于堆空间大小。一般通过软引用/弱引用来存储缓存对象,即当堆内存不足时,可以强制回收这部分内存释放堆内存空间。一般使用堆缓存存储较热的数据。可以使用Guava Cache、Ehcache、MapDB实现

 

堆外缓存

即缓存数据存储在堆外内存,可以减少GC暂停时间(堆对象转移到堆外,GC扫描和移动的对象变少了),可以支持更大的缓存空间(只受机器内存大小限制,不受堆空间的影响)。但是读取数据时需要序列化/反序列化,因此会比堆缓存慢很多。可以使用Ehcache、MapDB实现

 

磁盘缓存

即缓存数据存储在磁盘上,在JVM重启时数据还是存在的,而堆缓存/堆外缓存数据会丢失,需要重新加载。可以使用Ehcache、MapDB实现

 

分布式缓存

两种模式:

单机时:存储最热的数据到堆缓存,相对热的数据到堆外缓存,不热的数据到磁盘缓存

集群时:存储最热的数据到堆缓存,相对热的数据到堆外缓存,全量数据到分布式缓存(比如Redis实现分布式缓存)

 

Reference

亿级流量网站架构核心技术 张开涛 著

 

分享到:
评论

相关推荐

    Java缓存技术的使用实例

    Java缓存技术是提高应用程序性能的关键工具,尤其是在处理大量数据时。它通过存储频繁访问的数据在内存中,避免了重复的数据库查询,显著提升了响应速度。在这个“Java缓存技术的使用实例”中,我们将深入探讨Java...

    JAVA缓存技术深入了解

    深入理解Java缓存技术可以帮助我们设计出更加高效、响应迅速的系统。在这个主题下,我们将探讨Java缓存的基本概念、常用框架以及实现策略。 首先,让我们了解什么是缓存。缓存是一种存储技术,它允许我们在短时间内...

    详解java缓存ppt讲义

    Java缓存技术在企业级开发中扮演着至关重要的角色,主要目的是提高系统性能,减少不必要的计算和I/O操作。本文将深入探讨缓存的概念、作用、类型以及在Java环境下的应用。 缓存,简单来说,就是高速缓冲存储器,它...

    java缓存工具 SimpleCache_java_缓存_

    Java 缓存工具 SimpleCache 是一个用于在 Java 应用程序中实现高效数据存储和检索的框架。在高并发和大数据量的场景下,缓存是提高系统性能的关键技术之一。SimpleCache 提供了一种简洁的方式来管理短期数据,避免了...

    java之反射优化(缓存思路)源码

    然而,反射操作通常比直接的Java代码执行慢,因为它涉及到动态类型检查和方法调用。因此,为了提高性能,开发者经常需要对反射进行优化。本文将探讨如何利用缓存策略来优化Java中的反射操作,并通过源码分析来阐述这...

    Java缓存技术

    ### Java缓存技术详解 #### 一、引言 随着计算机技术的快速发展,Java作为一种流行的编程语言,在多个领域内得到广泛应用。特别是在互联网开发领域,Java因其卓越的通用性、高效性、平台移植性和安全性,成为了不...

    java缓存技术

    下面我们将深入探讨Java缓存技术,特别是Ehcache的使用。 首先,理解缓存的基本原理至关重要。缓存是一种存储技术,用于临时存储最近或最常访问的数据,以便快速访问。在Java应用中,缓存可以减少对远程服务(如...

    java 缓存系统实战(安装和实例代码)

    Java 缓存系统实战主要涉及的是使用 Memcached 这一开源缓存框架,它是一个高性能、分布式的内存对象缓存系统。Memcached 提供了 key-value 存储,旨在优化速度差异较大的硬件或软件之间的数据交互。以下是关于 ...

    java缓存工具SimpleCache.zip

    SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作! 1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。 3. 支持缓存数据分区规则...

    一个基于ajax和java缓存的聊天室

    "一个基于Ajax和Java缓存的聊天室"这个标题揭示了该项目的核心技术栈,即使用Ajax进行实时通信,以及Java作为后端处理数据并实现缓存功能,构建了一个在线聊天平台。Ajax(Asynchronous JavaScript and XML)是一种...

    java缓存设计代码

    根据提供的文件信息,我们可以深入分析该Java缓存设计代码中的关键知识点。 ### 一、类结构及作用 #### CacheManager 类 - **包名**: `lhm.hcy.guge.frameset.cache`,这表明该类属于一个较大的项目或框架的一部分...

    JAVA数据类型与Hibernate的类型映射

    在Java编程语言中,数据类型分为两种:基本数据类型(如int、char)和引用数据类型(如类、接口、数组)。而在Java持久化框架Hibernate中,这些数据类型需要与数据库中的字段类型进行映射,以便正确地存储和检索数据...

    Java缓存框架Java缓存框架

    ### Java缓存框架EhCache的关键知识点 #### 一、EhCache简介 EhCache是一个纯Java的进程内缓存框架,具有快速、精干等特点。它是Hibernate中默认的CacheProvider之一,广泛应用于各种Java应用中以提高性能和响应...

    java缓存技术深入剖析

    二、缓存类型 1. **本地缓存**:如Java的`WeakHashMap`、`SoftReference`等,通常用于单个JVM内部,适用于小规模的数据存储。 2. **分布式缓存**:如Hazelcast、Infinispan、Ehcache和广为人知的Apache Ignite,适用...

    JAVA_WEB_缓存技术

    在Java Web开发中,缓存技术是提高应用程序性能的关键手段之一。它通过存储常用的数据或计算结果,避免了每次请求时都直接从数据库或其他慢速存储中获取数据,从而显著提升了响应速度。在这个场景中,我们看到两个...

    高效Java后台程序缓存用户信息的研究.pdf

    在进行高效Java后台程序缓存用户信息的研究中,本文探讨了当前Java Web开发中常见的用户信息缓存实践,并对比了不同的缓存方式在效率和代码简洁性方面的优劣。在用户通过权限验证后,传统的做法是将用户信息保存在如...

    基于Java的源码-Java缓存工具 SimpleCache.zip

    《深入解析Java缓存工具SimpleCache》 在Java开发中,缓存技术是提升系统性能的重要手段之一。本文将详细探讨基于Java的开源缓存工具——SimpleCache,它旨在为开发者提供简单、高效的缓存解决方案。通过对源码的...

    统计缓存(java对象所占的内存)大小

    本文将深入探讨如何统计缓存(尤其是Java对象)所占的内存大小,以及这对理解程序内存消耗的重要性。 首先,我们要知道Java对象的内存开销主要由三部分组成:对象头、实例数据和对齐填充。对象头包含对象的类型信息...

    Ehcache Java 缓存框架 v3.10.8.zip

    Ehcache是一款流行的Java缓存框架,用于提高应用程序性能,减少对数据库的访问频率,从而降低系统的整体负载。v3.10.8是Ehcache的一个特定版本,它提供了许多增强的功能和优化,适用于各种Java应用场合。 Ehcache 3...

Global site tag (gtag.js) - Google Analytics