专栏首页JAVA乐园java中常用的缓存框架

java中常用的缓存框架

阅读文本大概需要3分钟。

0x01:Ehcache

  Ehcache是一个Java实现的开源分布式缓存框架,EhCache可以有效地减轻数据库的负载,可以让数据保存在不同服务器的内存中,在需要数据的时候可以快速存取。同时EhCache 扩展非常简单,官方提供的Cache配置方式有多种。可以声明配置、xml中配置、程序里配置或者调用构造方法时传入不同的参数。

官方网站

http://ehcache.org/

Ehcache有如下特点

  • 存取速度非常快,性能很不错。
  • 支持应用多种缓存策略。
  • 分级缓存,用户可以指定哪些数据在硬盘中缓存,哪些数据在内存中缓存。
  • 可以通过RMI、可插入API等方式进行分布式缓存。
  • 具有缓存和缓存管理器的侦听接口。
  • 支持多缓存管理器实例,以及一个实例的多个缓存区域。
  • 默认提供Hibernate的缓存实现。

0x02:Cacheonix

Cacheonix同样也是一个基于Java的分布式集群缓存系统,它同样可以方便的实现分布式缓存的部署。Cacheonix作为一款开源的分布式缓存框架,可以满足中型企业规模的系统架构,对提升系统性能有非常棒的作用。

官方网站

http://www.cacheonix.com/

Cacheonix有如下特点

  • 可靠的分布式 Java 缓存
  • 通过复制实现高可用性
  • 支持泛型的缓存 API
  • 可与 ORM 框架集成
  • 使用数据分区实现负载均衡
  • 支持非多播网络
  • 高性能计算
  • 快速的本地 Java 缓存
  • 分布式锁机制

0x03:JBoss Cache

JBoss Cache是一款基于Java的事务处理缓存系统,它的目标是构建一个以Java框架为基础的集群解决方案,可以是服务器应用,也可以是Java SE应用。

官方网站

http://jbosscache.jboss.org/

JBoss Cache有如下特点

  • 集群高可用性

JBoss Cache是可复制的Cache,状态总是和集群中的其它服务器同步保存。这使得任何存储在JBoss Cache的状态都能得到恢复,即使因服务器崩溃或重启。

  • 集群的cache消除了瓶颈

JBoss Cache设计来缓存经常被访问到的Java对象,目的是动态地改进应用程序的性能。这使得移除数据访问瓶颈更容易,例如数据库连接。

JBoss Cache实例很注意远程Cache的更新和同步。

  • 企业级

JBoss Cache是高级的、企业级数据网格解决方案,提供了如事务处理、回收和Cache载入等特征。

  • 许可证

JBoss Cache基于LGPL许可证,100%开源。

0x04:OSCache

  OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。

官方网站

http://www.opensymphony.com/oscache/

OSCache有如下特点

  • 缓存任何对象。可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。
  • 拥有全面的API。OSCache API提供全面的程序来控制所有的OSCache特性。
  • 永久缓存。缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启。
  • 支持集群。集群缓存数据能被单个的进行参数配置,不需要修改代码
  • 缓存记录的过期-。可以最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时)

0x05:Memcached

Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。本质上,它是一个简洁的key-value存储系统。

官方网站:

http://memcached.org/

Memcached有如下特点

  • 基于libevent的事件处理
  • memcached不互相通信的分布式
  • 协议简单
  • 内置内存存储方式

0x06:J2Cache

J2Cache 是 OSChina 目前正在使用的两级缓存框架。第一级缓存使用 Ehcache,第二级缓存使用 Redis 。由于大量的缓存读取会导致 L2 的网络成为整个系统的瓶颈,因此 L1 的目标是降低对 L2 的读取次数。该缓存框架主要用于集群环境中。单机也可使用,用于避免应用重启导致的 Ehcache 缓存数据丢失。

文档

https://www.oschina.net/doc/652

另外J2Cache的代码仓库在码云上,可以去搜索一下。更详细介绍

https://my.oschina.net/javayou/blog/1931381

0x07:JetCache

JetCache是阿里开源的缓存框架。JetCache是一个基于java的缓存系统封装,提供统一的API和注解简化缓存的使用。JetCache提供了比SpringCache更强大的注解,可以原生的支持TTL、两级缓存、分布式自动刷新,提供了Cache接口用于手工缓存操作。当前有四个实现,RedisCache、TairCache、CaffeineCache和一个简易的LinkedHashMapCache,要添加新的实现也是非常简单。

官方网站

https://github.com/alibaba/jetcache

JetCache有如下特点

  • 通过统一的API访问Cache系统
  • 通过注解实现声明式的方法缓存
  • 通过注解创建并配置Cache实例
  • 针对所有Cache实例和方法缓存的自动统计
  • Key的生成策略和value的序列化策略是可以配置的
  • 分布式缓存自动刷新,分布式锁
  • 异步Cache API
  • Spring Boot支持

本文分享自微信公众号 - JAVA乐园(happyhuangjinjin88),作者:java乐园

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 系统架构设计:进程缓存和缓存服务,如何抉择?

    我们所说的缓存分为进程内部缓存(系统内部缓存)和 缓存服务(如redis/memcache)。计算机服务从原来的单体结构,到多实例,到现在流行的微服务,缓存服务...

    java乐园
  • 【吊打面试,击中要害】缓存穿透、缓存击穿和缓存雪崩

    2019磕磕碰碰总算过去了,2020年秉承开源共享原则,继续分享在工作中遇到的各种问题和干货。2020年在面试题开始,祝愿小伙伴在2020年都能谋...

    java乐园
  • 关于Redis缓存的三个一定要知道的问题哟!

    二哈最近都没看Redis,现在回来温习下,现在从Redis的三大缓存开始重新探一探有多深有多浅(*^▽^*)

    java乐园
  • 缓存穿透,缓存击穿,缓存雪崩的内容和解决方案

    每次想到缓存的概念时就会想到下面这张结构图,缓存主要解决的是中央处理器与内存之间速度不匹配出来的问题。

    码农王同学
  • 中小型网站架构分析及优化

    老七Linux
  • 微服务化后缓存怎么做

    最近接手的代码中遇到几个缓存的问题,存在一些设计原则的问题,这里总结一下,希望可以对你有帮助

    方丈的寺院
  • 阿里老司机教你微服务化后缓存怎么做

    最近接手的代码中遇到几个缓存的问题,存在一些设计原则的问题,这里总结一下,希望可以对你有帮助

    本人秃顶程序员
  • Java 中的伪共享详解及解决方案

    Java技术栈
  • CI框架网页缓存简单用法分析

    尽管 CodeIgniter 已经相当高效了,但是网页中的动态内容、主机的内存 CPU 和数据库读取速度等因素直接影响了网页的加载速度。 依靠网页缓存, 你的网...

    砸漏
  • 缓存的Cache Aside模式

    codecraft

扫码关注云+社区

领取腾讯云代金券