现在对软件性能要求越来越高,动不动每秒多少请求,多少PV,多少并发。
提高软件产品性能的一个很好的方式是使用缓存。把重要的经常访问的数据放到内存中,每次请求过来了直接从缓存中取,这样要比从磁盘或者数据库中要快很多。
现阶段公司的分布式缓存产品想加一个对Java的访问接口,于是有时间可以光明正大的学习JCache的内容了。
一、JSR-107是什么?
要回答这个问题,首先要知道JSR是什么,JSR是Java Specification Requests 的缩写 ,Java规范请求,故名思议提交Java规范,大家一同遵守这个规范的话,会让大家‘沟通’起来更加轻松。 规范是很重要的 ,举个例子大家都知道红灯停,路灯行吧,如果每个城市的信号灯代表不一样,那就麻烦了,B城市红灯行,绿灯停,C城市甚至出现紫灯行,闪灯行,想想都知道,如果我们保证不出问题,必须知道每个城市的信号等代表的意义。
我们一直使用的JDBC就一个访问数据库的一个规范的例子。
JSR-107呢就是关于如何使用缓存的规范。
二、JSR-107有什么?
写过缓存应用的童鞋都会知道,使用缓存大概有以下步骤
1. 向电脑申请一块空间作为缓存
2. 为缓存定义你自己的数据结构
3. 向缓存中写数据
4. 从缓存中读数据
5. 不再使用缓存时,清空你锁申请的内存空间
大概这么多吧,当然里面还有很多细节性的东西,比如过期设置呀,分布式设置呀,是不是要持久化呀,是不是要支持事务呀,要不要加锁呀.......
JSR-107呢就是对缓存常用的操作做了一个抽象,然后给出一个API接口,不同的缓存产品只要实现了这些接口就可以了。使用缓存的用户能也只要调用这些接口就能得到不同产品的缓存服务,而不用悲催的来来回回学习不同缓存的API,更加悲催的是API还没有看明白,某技术就已经黄了。
最新版的JSR-107的API 规范已经在2013年11月16日出1.0 的稳定版本了。
你可以从官网得到最新的版本。
下面简单说下从官网文档得到的1.0 的缓存API 的核心概念。
1. CachingProvider
定义了建立,配置,得到,管理和控制0个或多个CacheManager,一个应用在运行时可能访问0个或者多个CachingProvider。
2.CacheManager
它定义了建立,配置,得到,管理和控制0个或多个有着唯一名字的Cache ,一个CacheManager被包含在单一的CachingProvider.
3. Cache
Cache是一个Map类型的数据结构,用来存储基于键的数据,很多方面都像java.util.Map数据类型。一个Cache 存在在单一的CacheManager.
4. Entry
Entry是一个存在在Cache的键值对
5. ExpiryPolicy
不是所有的数据都一直存在缓存中不改变的,为缓存的数据添加过期的策略会让你的缓存更加灵活和高效。
相关推荐
JSR-107,即JCache API,是一个旨在为Java程序提供与缓存系统交互的API规范。在Java社区中,分布式缓存对于提升系统的性能和可伸缩性起着至关重要的作用。然而,直到JSR-107标准的出现之前,Java平台并没有一个完整...
Java缓存API,即JSR-107,后来被命名为JCache,它为Java EE和Java SE环境中的缓存提供了一种通用的模型。通过定义一套标准接口,允许开发者以统一的方式操作不同厂商提供的缓存产品。 该规范的领导开发者包括Greg ...
JCache(JSR107)示例 我在有关JCache的演讲中使用了许多示例。 简单的缓存和配置 CacheLoader,用于通读到后端(可能是RDBMS) CacheWriter,用于写到后端 带有过滤器的CacheListener,以获取有关Cache事件的回调...
处理程序由 JCache (JSR-107) 支持。 您必须提供该缓存。 配置对象后,您必须将 CacheHandler 附加到您的端口: MutableConfiguration< String> config = new MutableConfiguration<> (); config . setTypes( ...
Spring从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化我们开发;大家一起来学习cache的用法
在Java世界中,JSR107(也称为JCache)是Java缓存的标准,它为开发人员提供了一种统一的方式来管理和使用缓存。这个“appengine-jsr107cache-1.7.3”库是为了在Google App Engine平台上支持JSR107标准。Google App ...
在Java世界中,JSR107(也称为JCache)是Java缓存API的规范,它提供了一种标准的方式来在应用程序中集成缓存功能。"appengine-jsr107cache-1.8.8.zip" 是一个针对Google App Engine平台的JSR107实现,允许开发者在...
具有持久性的 JCache 示例 使用 Infinispan 作为缓存提供程序和 MapDB 作为持久性提供程序的示例 JavaEE 7 应用程序。 仅使用 JSR 107 标准功能将缓存保留到文件中。 使用 Wildfly 8.2 和 Infinispan 7 进行测试。
JSR107 他是接口 面向接口编程 Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry和Expiry。 1. CachingProvider定义了创建、配置、获取、管理和控制多个CacheManager。一个应用...
关于如何将 javax.cache API 与 CDI 一起使用的简单示例... 设置的核心是 org.jsr107.ri:cache-annotations-ri-cdi,它为 CDI 环境(即 Weld,它只在测试运行器中显式使用,所以没有测试可以使用任何其他 CDI 实现)。
ehcache-jcache 是 ehcache 对 JCache 标准 API (JSR107) 的实现。 标签:ehcache
该项目使用了一个小的 CDI 扩展 - 、标准的 JCache JSR-107 注释和来自 JCache 参考实现的拦截器。 该项目旨在展示如何尽可能简单地使用这些工具向应用程序添加缓存。 向应用程序添加缓存需要以下步骤:添加依赖项...
JSR107(JCache) 关于 JCache是Java缓存API。 它由JSR107定义。 它定义了供开发人员使用的标准Java缓存API和供实现者使用的标准SPI(“服务提供商接口”)。 发布 2019年5月10日:1.1.1维护版本。 2017年12月16日...
**JSR107,全称为Java Temporary Caching API,是Java平台上的缓存标准,旨在为Java应用程序提供与缓存系统交互的API。该规范由JSR107专家小组制定,旨在提高应用程序的性能和响应速度,通过缓存数据来减少对持久...
5. 集成了JMX和JCache(JSR-107)标准,方便管理和监控。 6. 提供丰富的API,支持Java、JRuby、Python等多种语言。 【描述】"scala-scraper.zip,scala scrapera scala库,用于从html页面中删除内容" 描述的是一个...
Ehcache 2.10.8还包含了对JCache(JSR-107)标准的支持,使得它能与其他遵循该标准的Java库更好地协同工作。 BigMemory Max是Ehcache的一个增强版,尤其设计用于处理大量数据。它通过使用Off-Heap存储技术,将数据...
Shiro支持JCache(JSR-107)规范,可以通过Guava、Ehcache等实现二级缓存。配置步骤如下: 1. 引入JCache或具体缓存实现的依赖。 2. 在shiro.ini或自定义 Realm 中配置缓存管理器。 3. 设置缓存策略,如缓存的生命...
请参阅 JSR-107 、 和。 基本操作暂时实现。 部分缺失/缺失 到期由底层 couchbase 存储桶管理,不会通知 不支持 EntryProcessors 没有悲观锁/分布式锁。 使用 Couchbase 乐观锁来尽最大努力来近似 JSR107 一致性...
6. 支持JCache (JSR-107):遵循Java缓存标准,使得与其他符合标准的缓存系统交互变得简单。 【描述】"rundeck-hipchat-plugin.zip" 提供了一个Rundeck和HipChat集成的插件,允许Rundeck作业的通知消息被自动发送到...