博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
guava cache
阅读量:5816 次
发布时间:2019-06-18

本文共 2182 字,大约阅读时间需要 7 分钟。

import com.google.common.cache.Cache;import com.google.common.cache.CacheBuilder;import com.google.common.cache.RemovalListener;import com.google.common.cache.RemovalNotification;import org.apache.commons.lang3.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.List;import java.util.Objects;import java.util.concurrent.TimeUnit;/** * guava cache * */public class LocalCacheUtils {    private static final Logger log = LoggerFactory.getLogger(LocalCacheUtils.class);    /**     * 使用google guava缓存处理     */    private static Cache
cache; static { cache = CacheBuilder.newBuilder().maximumSize(10000).expireAfterWrite(24, TimeUnit.HOURS).initialCapacity(10) .removalListener(new RemovalListener
() { @Override public void onRemoval(RemovalNotification
rn) { if (log.isInfoEnabled()) { log.info("被移除缓存{}:{}", rn.getKey(), rn.getValue()); } } }).build(); } /** * 是否存在 * * @param key * @return */ public static boolean isExist(String key) { if (StringUtils.isBlank(key)) { return false; } return Objects.isNull(cache.getIfPresent(key)) ? false : true; } /** * 获取缓存 * * @param key * @return */ public static String get(String key) { return StringUtils.isNotEmpty(key) ? String.valueOf(cache.getIfPresent(key)) : null; } /** * 放入缓存 * * @param key * @param value */ public static void put(String key, String value) { if (StringUtils.isNotEmpty(key) && value != null) { cache.put(key, value); } } /** * 移除缓存 * * @param key */ public static void remove(String key) { if (StringUtils.isNotEmpty(key)) { cache.invalidate(key); } } /** * 批量删除缓存 * * @param keys */ public static void removeBatch(List
keys) { if (keys != null && keys.size() > 0) { cache.invalidateAll(keys); } }}复制代码

转载地址:http://cfhbx.baihongyu.com/

你可能感兴趣的文章
Spring项目MySQL向MariaDB的迁移
查看>>
《Linux企业应用案例精解(第2版)》新书发布
查看>>
虚基类
查看>>
微信小程序周报(第三期)
查看>>
数据[BQTY tarPosm]
查看>>
SAE Tornado Worker 的一点使用经历
查看>>
构建部署脚本
查看>>
排序算法 总结
查看>>
进程与系统调用
查看>>
深入理解HTTP Session
查看>>
一个十年没更新的项目还有没有必要玩
查看>>
Spring Boot 2.0(六):使用 Docker 部署 Spring Boot 开源软件云收藏
查看>>
MySQL高可用架构之MHA
查看>>
PlayScala实战 - 如何优雅地取出多层Future中的结果?
查看>>
Play For Scala 开发指南 - 第3章 常用类介绍
查看>>
Android开发效率—Eclipse快捷键
查看>>
iOS添加黑色蒙层
查看>>
Hibernate遇到的问题与解决方案
查看>>
hibernate 读取 blob 字段
查看>>
rsync简明手册
查看>>