Spring Boot Cache - 本地缓存

Spring Boot Cache - 本地缓存,第1张

pomxml

使用Spring Boot Cache框架,其中一个很大的好处,就是可以很方便的更换缓存实现

Spring Boot会检查class path里的类,发现合适的(比如caffeine)就会生成对应的 CacheManager

applicationproperties

在开发高并发量,高性能的网站应用系统时,缓存Cache起到了非常重要的作用。本文主要介绍EHCache的使用,以及使用EHCache的实践经验。笔者使用过多种基于Java的开源Cache组件,其中包括OSCache、JBossCache、EHCache。OSCache功能强大,使用灵活,可用于对象缓存、Filter缓存以及在JSP中直接使用cache标签。笔者在最近的使用过程中发现,在并发量较高时,OSCache会出现线程阻塞和数据错误,通过分析源代码发现是其内部实现的缺陷。JBossCache最大的优点是支持基于对象属性的集群同步,不过JBossCache的配置使用都较复杂,在并发量较高的情况下,对象属性数据在集群中同步也会加大系统的开销。以上两种Cache本文仅作简单介绍,不做深入探讨。EHCache是来自sourceforge(通过manager可以生成指定名称的Cache对象Cachecache=cache=managergetCache("demoCache");//使用manager移除指定名称的Cache对象managerremoveCache("demoCache");可以通过调用managerremovalAll()来移除所有的Cache。通过调用manager的shutdown()方法可以关闭CacheManager。有了Cache对象之后就可以进行一些基本的Cache *** 作,例如://往cache中添加元素Elementelement=newElement("key","value");cacheput(element);//从cache中取回元素Elementelement=cacheget("key");elementgetValue();//从Cache中移除一个元素cacheremove("key");可以直接使用上面的API进行数据对象的缓存,这里需要注意的是对于缓存的对象都是必须可序列化的。在下面的篇幅中笔者还会介绍EHCache和Spring、Hibernate的整合使用。

pomxml 引入redis 开启缓存

<!-- cache -->

<dependency>

<groupId>orgspringframeworkboot</groupId>

<artifactId>spring-boot-starter-cache</artifactId>

</dependency>

<!-- redis -->

<dependency>

<groupId>orgspringframeworkboot</groupId>

<artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>

applicationproperties 配置文件

# Redis数据库索引(默认为0)springredisdatabase=0

# Redis服务器地址springredishost=localhost

# Redis服务器连接端口springredisport=6379

# Redis服务器连接密码(默认为空)springredispassword=

# 连接池最大连接数(使用负值表示没有限制)

springredispoolmax-active=8

# 连接池最大阻塞等待时间(使用负值表示没有限制)

springredispoolmax-wait=-1

# 连接池中的最大空闲连接

springredispoolmax-idle=8

# 连接池中的最小空闲连接

springredispoolmin-idle=0

# 连接超时时间(毫秒)

springredistimeout=0

添加cache的配置类

package >

蓝屏的原因往往集中在不兼容的硬件和驱动程序、有问题的软件、病毒等。解决办法:

1、病毒的原因。使用电脑管家杀毒。

2、 内存的原因。用橡皮擦把内存条的金手指擦拭一下,把氧化层擦掉,确保内存条安装、运行正常。

3、CPU风扇积灰太多不能正常运行,造成CPU温度过高,用毛刷、电吹风将机箱内壁、CPU风扇、显卡风扇、主板上的积灰都清理一遍。

java ehcache是什么,让我们一起了解一下?

EhCache是一个纯Java的进程内缓存框架,具有快速、精干等特点。主要面向通用缓存,Java EE和轻量级容器,具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序的功能。

ehcache主要的特性有:

1、简单,快速。

2、提供Hibernate的缓存实现。

3、多种缓存策略。

4、缓存数据有两级:内存和磁盘,因此无需担心容量问题。

5、缓存数据会在虚拟机重启的过程中写入磁盘。

6、可以通过RMI、可插入API等方式进行分布式缓存。

7、具有缓存和缓存管理器的侦听接口。

8、支持多缓存管理器实例,以及一个实例的多个缓存区域。

Ehcache在java中是如何使用的?

具体代码如下:代码实现的功能非常简单,即创建CacheManager,往里面存放一个Cache,然后往cache里面存数据和取数据,目的是展示Ehcache的基本使用。 /   XXXcom Inc   Copyright (c) 2004-2014 All Rights Reserved  / package comtestencache;   import netsfehcacheCache; import netsfehcacheCacheManager; import netsfehcacheElement;   /      @author XXX   @version $Id: EncacheTestjava, v 01 2014年8月8日 下午5:30:03 XXX Exp $  / public class EncacheTest {     //一些配置参数     //private final static String configFileName      = "ehcachexml";     //private final static int    maxEntriesLocalHeap = 1000;     private static CacheManager cacheManager;     static String               cacheName = "cache1";       public static void main(String[] args) {         ehcacheSetUp();           ehcacheUse();     }       private static void ehcacheSetUp() {           cacheManager = CacheManagercreate();           //CacheConfiguration configuration = new CacheConfiguration(configFileName,         //    maxEntriesLocalHeap);           //Cache cache = new Cache(configuration);         cacheManageraddCache(cacheName);       }       private static void ehcacheUse() {         Cache cache1 = cacheManagergetCache(cacheName);         String key = "key1";         String value = "value1";           writeSomeData(cache1, key, value);           Element element = readSomeData(cache1, key, value);           Systemoutprintln(element);     }       private static void writeSomeData(Cache cache, String key, String value) {         cacheput(new Element(key, value));     }       private static Element readSomeData(Cache cache, String key, String value) {         return cacheget(key);     } }

b站全站排行刷新去掉观看 原创

2018-04-26 11:09:00

lz1694439208

码龄8年

关注

使用方法 放到控制台运行然后

全站动画国创相关音乐舞蹈游戏科技生活鬼畜时尚娱乐影视去掉看过

看之前点击这个去掉看过 就会自动去掉上一次看过的排名

建议用 油猴写个扩展

源码

var list = JSONparse(localStoragegetItem("IdLists"));

for (n in list) {

idspush(list[n]id);

}

if (list == null ) {

list = [];

}

[]forEachcall($("info")find('a:first'), function(a) {

var id = aattributes["href"]valuesplit("/")[4];

var name = atext;

if (idsindexOf(id) == -1) {

listpush({

id: id,

name: name

});

}else{

aparentNodeparentNodeparentNoderemove();

}

})

localStoragesetItem("IdLists", JSONstringify(list));

文章知识点与官方知识档案匹配

Java技能树首页概览

92728 人正在系统学习中

打开CSDN APP,看更多技术内容

基于 Localstorage 设计一个 1M 的缓存系统,需要实现缓存淘汰机制,提供设计思路

//1再每次存储之前,获取已存储的localStorage数据数组和大小 //2判断未超过1024kb,则对数组插入新数据后存储 //3判断已超过1024kb,则先删除数组的首条数据后,再插入新数据存储 functionSetData(key,value){ varobj=windowlocalStorage; varsize=0; for(iteminobj){ if

继续访问

几道高级前端面试题解析

为什么 01 + 02 != 03,请详述理由 因为 JS 采用 IEEE 754 双精度版本(64位),并且只要采用 IEEE 754 的语言都有该问题。 我们都知道计算机表示十进制是采用二进制表示的,所以 01 在二进制表示为 // (0011) 表示循环 01 = 2^-4 110011(0011) 复制代码那么如何得到这个二进制的呢,我们可以来演算下 小数算二进

继续访问

封装H5的localStorage本地缓存对象,实现缓存有效期、缓存条数限制

声明方式: / indexKey 缓存名 cacheSize 缓存个数 / var localCache = new LRUCache(indexKey, cacheSize); 调用方式: 添加:localCacheput(key, value, expires); 获取: localCacheget(key); 清除:localCacheclea

继续访问

如何使用 sessionStorage 和 localStorage 进行简单的数据存储与获取

如何使用 sessionStorage 和 localStorage 进行简单的数据存储与获取 localStorage和sessionStorage是Web提供的两种本地存储方式。 相比较cookie而言,localStorage和sessionStorage的存储大小很大,localStorage能够长期保存,sessionStorage在会话期间保存。 localStorage 1 设置 localStorage (setItem): var localStorage = window

继续访问

localStorage && sessionStorage 存储/缓存数据

localStorage存储 我们通过以下方式将数据储存到localStorage中 windowlocalStoragesetItem('key',value) 但有时value为一个对象Object,以上面的方式写入,会出现读取的返回值为{object Object}的情况,但这并不是我们想要的,此时我们需要使用新的方式 传入Object windowlocalStoragesetI

继续访问

基于大数据量的缓存查询实现方案

业务、应用系统最常用的就是基于数据的查询,这不同于宏观意义上的系统各个层面优化(应用端、服务端、DB端等等),基于数据的查询更多时候需要考虑数据的规模、用户的习惯、数据的变化性等因素,但同时数据查询的优化也贯穿着系统的各个层面。本文主要针对一个特定领域进行分析,以供各位参考!        基于数据的查询往往首要考虑的是缓存数据,那么缓存的前提:        1、数据不会实时变化

继续访问

localstorage存储大小_JavaScript浏览器端数据存储方案之IndexDB篇

在做项目的过程中,我们经常遇到需要把信息存储在本地的情况,比如权限验证的token、用户信息、埋点计数、客户配置的皮肤信息或语言种类等,我们可以暂存一下避免浏览器不必要的请求和客户多余 *** 作,给客户使用带来方便。随着浏览器的功能不断增强,越来越多的网站开始考虑,将大量数据储存在客户端,这样可以减少从服务器获取数据,直接从本地获取数据。现有的浏览器数据储存方案,都不适合储存大量数据:Cookie 的大

继续访问

使用localstorage实现的本地缓存,但是如何根据用户访问不同的缓存数据?

比如说用户A登录,保存了数据,此时用户B在同一浏览器登录,如何保证B访问不到a的缓存 解决方法:自己存数据的时候一起将用户的信息存入(例如用户的ID) 一般是用户登录的时候使用localStorage缓存下用户信息userId(例如是用户的ID) 当A用户登录后使用localStorage缓存下数据dataInfo时,要把用户的ID同时加入缓存的数据中 dataInfo = { list:

继续访问

三大缓存技术--localStorage、sessionStorage、Cookie

前端三大缓存技术、客户端存储、cookie、localStorage、sessionStorage、三者的区别

继续访问

数据存储之localStorage与sessionStorage

1 两者的区别 11生命周期 localStorage生命周期是永久,当用户将显示在浏览器上提供的UI清除localStorage信息,否则将永远存在。 sessionStorage生命周期为当前窗口或者标签页,当窗口或者标签页被永久关闭了,那么sessionStorage存储的数据也会被清空。 12存储方式 localstorage(本地存储)则以文件的方式存储在本地,永久保存(不主动删除,则一直存在);sessionstorage( 会话存储 ) ,临时保存。localStorage和sessio

继续访问

浏览器缓存库设计总结(localStorage/indexedDB)

前言浏览器缓存设计一直是web性能优化中非常重要的一个环节,也是SPA应用盛行的今天不得不考虑的问题作为一名优秀的前端工程师,为了让我们的应用更流畅,

继续访问

设置缓存的大小

目录 1 CacheManager级别 2 Cache级别 3 大小衡量 4 配置大小示例 缓存大小的限制可以设置在CacheManager上,也可以设置在单个的Cache上。我们可以设置缓存使用内存的大小,也可以设置缓存使用磁盘的大小,但是使用堆内存的大小是必须设置的,其它可设可不设,默认不设就是无限制。在设置缓存大小的时候,我们可以设置缓存使用某一个存储器的最大字节数,也可以设置缓存在某一个存储器上最多存放元素的数量。 1 C

继续访问

黑科技:LocalStorage 缓存机制

黑科技:LocalStorage 缓存机制 事情的起因是我的同事金果问我:- “你知道微信公众号文章的渲染方式吗?” 对此,我的反应是:- “啊?” 金果继续问:- “控制台的 Network 里没有发生任何请求,文章里的内容是怎么来的?” 说到这儿我好像大概理解她的意思,于是打开控制台的 Network 确认一下果真如此,文章中的内容并

继续访问

热门推荐 localStorage用法小总结

一、什么是localStorage 在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k) 二、localStorage的优势和局限 1优势 localStorage拓展了cookie的4K限制 localStorage会可以

继续访问

前端页面利用localStorage设置缓存方案

前端页面利用localStorage设置缓存方案 localStorage的存储空间大致在5M左右,各大浏览器略有差别。我再chrome 54中测试能放下 5233962 字节,该值并不精确,通过每次往localStorage中插入一个大字符串,到达上线报错之后再取总长度得到。 LocalStorageClient类提供两个方法来存储缓存数据save(key, data, flag) saveAss

继续访问

小程序从启动到发版

小程序项目从拿到手到发版流程

继续访问

最新发布 MongoDB总结

MongoDB总结

继续访问

JsonUtility读写json简单应用

使用Unity提供的JsonUtility 简单封装了一个将数据以json格式存储到本地,方便数据读写的案例

继续访问

✿✿✿JavaScript --- Ajax异步请求与JSONP 跨域请求

一、原生的Ajax请求1异步和同步2Ajax介绍(1)原生的JS实现方式(了解)(2)原生AJax发送Post请求,并携带请求参数 二、JQuery封装后的Ajax1JQeury实现方式三、JSONP 跨域请求1什么是跨域?2JQuery 封装过后的JSONP请求四、CORS 跨域,获取不到数据的原因。五、Java中JSON字符串和Java对象的互相转换2Java对象转换JSON3 JSON转为Java对象

继续访问

以上就是关于Spring Boot Cache - 本地缓存全部的内容,包括:Spring Boot Cache - 本地缓存、net.sf.ehcache.cachemanagercachemanager diskstore路径怎么写、springboot 中 RedisCacheManager rm = new RedisCacheManager(redisTemplate);我的项目没这个构造等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9319579.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存