maven依赖

  1. <dependency>
  2. <groupId>com.google.guava</groupId>
  3. <artifactId>guava</artifactId>
  4. <version>23.0</version>
  5. </dependency>
  1. import com.google.common.cache.Cache;
  2. import com.google.common.cache.CacheBuilder;
  3. import com.google.common.cache.RemovalListener;
  4. import com.google.common.cache.RemovalNotification;
  5. import org.apache.commons.lang3.StringUtils;
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8.  
  9. import java.util.List;
  10. import java.util.concurrent.TimeUnit;
  11.  
  12. public class CacheMap {
  13. private static final Logger log = LoggerFactory.getLogger(CacheMap.class);
  14.  
  15. /**
  16. * @desction: 使用google guava缓存处理
  17. */
  18. private static Cache<String,Object> cache;
  19. static {
  20. cache = CacheBuilder.newBuilder().maximumSize(10000)
  21. .expireAfterWrite(24, TimeUnit.HOURS)
  22. .initialCapacity(10)
  23. .removalListener(new RemovalListener<String, Object>() {
  24. @Override
  25. public void onRemoval(RemovalNotification<String, Object> rn) {
  26. if(log.isInfoEnabled()){
  27. log.info("被移除缓存{}:{}",rn.getKey(),rn.getValue());
  28. }
  29. }
  30. }).build();
  31. }
  32.  
  33. /**
  34. * @desction: 获取缓存
  35. */
  36. public static Object get(String key){
  37. return StringUtils.isNotEmpty(key)?cache.getIfPresent(key):null;
  38. }
  39. /**
  40. * @desction: 放入缓存
  41. */
  42. public static void put(String key,Object value){
  43. if(StringUtils.isNotEmpty(key) && value !=null){
  44. cache.put(key,value);
  45. }
  46. }
  47. /**
  48. * @desction: 移除缓存
  49. */
  50. public static void remove(String key){
  51. if(StringUtils.isNotEmpty(key)){
  52. cache.invalidate(key);
  53. }
  54. }
  55. /**
  56. * @desction: 批量删除缓存
  57. */
  58. public static void remove(List<String> keys){
  59. if(keys !=null && keys.size() >0){
  60. cache.invalidateAll(keys);
  61. }
  62. }
  63. }

Guava Cache 工具类的更多相关文章

  1. Guava Cache 工具类 [ GuavaCacheUtil ]

    pom.xml <dependency> <groupId>com.google.guava</groupId> <artifactId>guava&l ...

  2. Cache 工具类

    package com.thinkgem.jeesite.common.utils; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheM ...

  3. Guava 常用工具类

    引入guava包: <dependency> <groupId>com.google.guava</groupId> <artifactId>guava ...

  4. apache-commons和guava的工具类

    apache-commons工具类:https://www.iteye.com/blog/zhoualine-1770014 guava工具类:https://blog.csdn.net/Dream_ ...

  5. Google Guava Cache 全解析

    Google guava工具类的介绍和使用https://blog.csdn.net/wwwdc1012/article/details/82228458 LoadingCache缓存使用(Loadi ...

  6. Guava 开源工具的简单介绍

    Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libra ...

  7. Jeesite的cahche工具类

    本CacheUtils主要是基于shiro的cache进行处理. 其他选择: 类似的我们可以选择java cache ,spring cahche等方案.                   再进一步 ...

  8. java JedisUtils工具类

    package com.sh.xrsite.common.utils; import java.util.List; import java.util.Map; import java.util.Se ...

  9. Redis工具类

    /** * Copyright © 2012-2016 * <a href="https://github.com/thinkgem/smkj">smkj</a& ...

随机推荐

  1. shell基础知识之 stdin,stdout,stderr和文件描述符

    stdin,stdout,stderr stdin=0 stdout=1 stderr=2 使用tee来传递内容,把stdout 作为stdin 传到下个命令 root@172-18-21-195:/ ...

  2. jvm 性能调优工具之 jmap 命令详解

    jmap名称:Java Memory Map(内存映射) 官方文档:https://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jmap.html ...

  3. Maya编程——沿Curve绘制圆柱

    操作流程: 1. VS运行代码,生成插件 2. 打开Maya绘制曲线,加载插件 3. 选中绘制的曲线,运行插件 Posts1.0 代码: #include <maya/MSimple.h> ...

  4. c# – Asp.Net Core MVC中Request.IsAjaxRequest()在哪里?

    要了解有关新的令人兴奋的Asp.Net-5框架的更多信息,我正在使用最新发布的Visual Studio 2015 CTP-6来构建一个Web应用程序. 大多数事情看起来真的很有希望,但我似乎找不到R ...

  5. Appium 中使用 pressKeyCode 方法不起作用也没有报错

    为了使 appium 支持 Android 系统 7 及以上,automationName 使用了 UIAutomator2.但是发现,使用androidDriver.pressKeyCode(And ...

  6. Oracle中恢复drop掉的表中的数据

    今天同事不小心把生产上的一张表直接drop掉了,没有做备份,哥们慌的一匹,来找我这个小白来帮忙解决,于是心血来潮简单总结一下. 其实在oralce中,用drop删掉一张表,其实不会真正的删除,只是把表 ...

  7. 22 Maven高级应用

    1.Maven基础知识回顾 maven是一个项目管理工具.依赖管理:maven对项目中的jar包的管理过程.传统的工程我们直接将jar包放置到项目中. maven工程真正的jar包放置在仓库中,项目中 ...

  8. openjudge4979 - 海贼王之伟大航路 题解

    原题链接 题目简要分析 N个点,从1号点到N号点求最短路径,且每个点都要遍历到.现在要你求出最优方案. 这道题看到后,首先的想法莫过于搜索.暴力了.这显然不太可能.而进一步思考,使用Floyed和Di ...

  9. Redis初识01 (简介、安装、使用)

    一.Reids介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(s ...

  10. SQL语句报错:You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near

    报错如图: 最开始其实我的列名tname和tsubject分别叫name和subject,后来看到网上有说这个报错可能是数据库建表的时候使用了mysql的关键词,我就只把name改了.后来还是这个问题 ...