当前位置: 首页 > wzjs >正文

网站建设询价报告百度营销推广靠谱吗

网站建设询价报告,百度营销推广靠谱吗,广东企业信息查询系统,wordpress 4 中文手册文章目录 1、POM文件依赖2、声明缓存3、缓存使用4、测试缓存5、自定义缓存过期时间6、测试自定义超时时间 1、POM文件依赖 <dependency><groupId>com.github.ben-manes.caffeine</groupId><artifactId>caffeine</artifactId><version>3.1…

文章目录

  • 1、POM文件依赖
  • 2、声明缓存
  • 3、缓存使用
  • 4、测试缓存
  • 5、自定义缓存过期时间
  • 6、测试自定义超时时间

1、POM文件依赖

<dependency><groupId>com.github.ben-manes.caffeine</groupId><artifactId>caffeine</artifactId><version>3.1.0</version></dependency>

2、声明缓存

@Slf4j
public class CaffeineCacheUtils {/*** 声明缓存对象*/private static final Cache<String, Object> CACHE = Caffeine.newBuilder()// 当key和value都没有引用时驱逐缓存.weakKeys().weakValues()// 最大容量.maximumSize(10_000)// 固定存活时间24小时.expireAfterWrite(2 * 60 * 60 * 1000L, TimeUnit.MILLISECONDS).build()// 构建Caffeine缓存;}

3、缓存使用

/*** 添加缓存** @param key   key值* @param value value值*/public static void put(String key, Object value) {CACHE.put(key, value);}/*** 获取缓存对象** @param key key值* @return 返回value值*/public static Object get(String key) {return CACHE.getIfPresent(key);}

4、测试缓存

@Testpublic void testCache() {CaffeineCacheUtils.put("key", "value");Object value = CaffeineCacheUtils.get("key");log.info("value={}", value);}

5、自定义缓存过期时间

expireAfterWrite是指定一个固定的过期时间,如果想要根据不同的key值自己指定过期时间,可以按照下面的方法来实现。

声明一个缓存value值holder对象

@Data
public class CacheValueHolder implements Serializable {@Serialprivate static final long serialVersionUID = 1398783661313031605L;private Object value;private TimeUnit timeUnit;private long expire;}

创建缓存容器

/*** 声明缓存对象*/private static final Cache<String, CacheValueHolder> CACHE = Caffeine.newBuilder()// 当key和value都没有引用时驱逐缓存.weakKeys().weakValues()// 最大容量.maximumSize(10_000).expireAfter(new Expiry<String, CacheValueHolder>() {@Overridepublic long expireAfterCreate(String key, CacheValueHolder valueHolder, long currentTime) {log.info("创建缓存对象,key={},value={},currentTime={}", key, JSON.toJSONString(valueHolder), currentTime);return valueHolder.getTimeUnit().toNanos(valueHolder.getExpire());}@Overridepublic long expireAfterUpdate(String key, CacheValueHolder valueHolder, long currentTime, @NonNegative long currentDuration) {log.info("更新缓存对象,key={},value={},currentTime={},currentDuration={}", key, JSON.toJSONString(valueHolder), currentTime, currentDuration);return valueHolder.getTimeUnit().toNanos(valueHolder.getExpire());}@Overridepublic long expireAfterRead(String key, CacheValueHolder valueHolder, long currentTime, @NonNegative long currentDuration) {log.info("读取缓存对象,key={},value={},currentTime={},currentDuration={}", key, JSON.toJSONString(valueHolder), currentTime, currentDuration);return currentDuration;}})// 如果缓存不存在,则同步查询事业部产品列表,同时加入缓存.build()// 构建Caffeine缓存;

修改缓存使用方法

/*** 添加缓存** @param key      key值* @param value    value值* @param expire   过期时间* @param timeUnit 时间类型*/public static void put(String key, Object value, long expire, TimeUnit timeUnit) {CacheValueHolder valueHolder = new CacheValueHolder();valueHolder.setValue(value);valueHolder.setExpire(expire);valueHolder.setTimeUnit(timeUnit);CACHE.put(key, valueHolder);}/*** 添加缓存** @param key   key值* @param value value值*/public static void put(String key, Object value) {// 默认缓存存在时间为1000毫秒put(key, value, 1000, TimeUnit.MILLISECONDS);}/*** 获取缓存对象** @param key key值* @return 返回value值*/public static Object get(String key) {CacheValueHolder valueHolder = CACHE.getIfPresent(key);if (Objects.isNull(valueHolder)) {return null;}return valueHolder.getValue();}

6、测试自定义超时时间

@Testpublic void testCache() throws InterruptedException {CaffeineCacheUtils.put("key1", "value1", 1000L, TimeUnit.MILLISECONDS);CaffeineCacheUtils.put("key2", "value2", 2000L, TimeUnit.MILLISECONDS);Object value1 = CaffeineCacheUtils.get("key1");Object value2 = CaffeineCacheUtils.get("key2");log.info("value1={}", value1);log.info("value2={}", value2);TimeUnit.MILLISECONDS.sleep(1000L);Object value11 = CaffeineCacheUtils.get("key1");Object value22 = CaffeineCacheUtils.get("key2");log.info("value1={}", value11);log.info("value2={}", value22);}

方法运行后日志为:

23:44:21.398 [main] INFO com.summer.toolkit.util.CaffeineCacheUtils - 创建缓存对象,key=key1,value={"expire":1000,"timeUnit":"MILLISECONDS","value":"value1"},currentTime=8165196876700
23:44:21.401 [main] INFO com.summer.toolkit.util.CaffeineCacheUtils - 创建缓存对象,key=key2,value={"expire":2000,"timeUnit":"MILLISECONDS","value":"value2"},currentTime=8165240503500
23:44:21.401 [main] INFO com.summer.toolkit.util.CaffeineCacheUtils - 读取缓存对象,key=key1,value={"expire":1000,"timeUnit":"MILLISECONDS","value":"value1"},currentTime=8165240686100,currentDuration=956190600
23:44:21.403 [main] INFO com.summer.toolkit.util.CaffeineCacheUtils - 读取缓存对象,key=key2,value={"expire":2000,"timeUnit":"MILLISECONDS","value":"value2"},currentTime=8165242670700,currentDuration=1997832800
23:44:21.403 [main] INFO com.summer.toolkit.service.CaffeineCacheUtilsTest - value1=value1
23:44:21.403 [main] INFO com.summer.toolkit.service.CaffeineCacheUtilsTest - value2=value2
23:44:22.410 [main] INFO com.summer.toolkit.util.CaffeineCacheUtils - 读取缓存对象,key=key2,value={"expire":2000,"timeUnit":"MILLISECONDS","value":"value2"},currentTime=8166249659500,currentDuration=990844000
23:44:22.411 [main] INFO com.summer.toolkit.service.CaffeineCacheUtilsTest - value1=null
23:44:22.412 [main] INFO com.summer.toolkit.service.CaffeineCacheUtilsTest - value2=value2

可以看到同时放入缓存容器中的两个缓存,一个1000毫秒的过期时间,一个2000毫秒的过期时间,当刚放入时都可以获取到,等待1000毫秒后,只有第二个缓存可以获取到,第一个缓存对象已经过期获取不到,实现了用户自定义缓存对象过期时间。

http://www.dtcms.com/wzjs/434797.html

相关文章:

  • 如何做旅游网站手机系统流畅神器
  • 收录好的网站中国网络优化公司排名
  • 甘肃白银住房建设局网站自媒体推广渠道有哪些
  • 渭南做网站费用广告招商
  • 网站空间租赁费用无限制搜索引擎排名
  • 自己做交易网站吗如何制作网站和网页
  • 网站和app区别与联系最新的疫情情况
  • 自适应型网站建设推荐下列关于友情链接说法正确的是
  • 阳泉那有做网站的公司网站制作
  • 长沙好的做网站品牌南京seo优化培训
  • 社会建设网站搜索排名优化
  • .net 企业网站源码市场监督管理局投诉电话
  • 网站备案信息下载关键词有哪些关联词
  • 笔趣阁建站教程杭州百度快照优化排名推广
  • 花的网站建设规划书口碑营销ppt
  • 政府网站建设周期最新nba排名
  • 私人网站如何做竞价建立一个网站需要多少钱?
  • 签约网站做PPT竞价账户托管公司
  • jsp网站服务建设是什么seo关键词优化如何
  • 网站右侧qq客服代码百度广告怎么收费标准
  • 重庆微信网站开发公司北京网站优化排名推广
  • 雁塔网站建设东莞寮步最新通知
  • wordpress gravatar头像seo优化怎么做
  • 做企业网站设计方案如何制作一个网页网站
  • 青岛中小企业建设网站有扶持资金吗seo优化排名教程百度技术
  • 网站网络设计是怎么做的百度网盘app下载安装 官方下载
  • 腾讯学生服务器做网站厦门网站建设公司名单
  • 武汉百度竞价托管网站优化策划书
  • 宜昌网站建设多少钱谷歌seo服务公司
  • 中央农村工作会议内容和精神2021河北网站seo策划