LocalCache.java 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package com.jiayue.ssi.util;
  2. import cn.hutool.cache.CacheUtil;
  3. import cn.hutool.cache.impl.TimedCache;
  4. import cn.hutool.core.date.DateUnit;
  5. import java.util.Set;
  6. /**
  7. * 缓存工具
  8. *
  9. * @author xsl
  10. * @since 2023/02/22
  11. */
  12. public class LocalCache {
  13. /**
  14. * 默认缓存时长5分钟
  15. */
  16. private static final long DEFAULT_TIMEOUT = 5 * DateUnit.MINUTE.getMillis();
  17. /**
  18. * 默认清理间隔时间
  19. */
  20. private static final long CLEAN_TIMEOUT = 5 * DateUnit.MINUTE.getMillis();
  21. /**
  22. * 缓存对象
  23. */
  24. private static final TimedCache<String, Object> TIMED_CACHE = CacheUtil.newTimedCache(DEFAULT_TIMEOUT);
  25. static {
  26. //启动定时任务
  27. TIMED_CACHE.schedulePrune(CLEAN_TIMEOUT);
  28. }
  29. public static void set(String key, Object value) {
  30. TIMED_CACHE.put(key, value);
  31. }
  32. public static void set(String key, Object value, long expire) {
  33. TIMED_CACHE.put(key, value, expire);
  34. }
  35. /**
  36. * 获取并重新计算过期时间
  37. */
  38. public static Object getWithUpdateLastAccess(String key) {
  39. return TIMED_CACHE.get(key);
  40. }
  41. /**
  42. * 获取
  43. *
  44. * @param key
  45. * @return
  46. */
  47. public static Object get(String key) {
  48. return TIMED_CACHE.get(key, false);
  49. }
  50. public static Set<String> keySet() {
  51. return TIMED_CACHE.keySet();
  52. }
  53. public static void remove(String key) {
  54. TIMED_CACHE.remove(key);
  55. }
  56. public static void clear() {
  57. TIMED_CACHE.clear();
  58. }
  59. public static long test() {
  60. return TIMED_CACHE.timeout();
  61. }
  62. public static class Constants {
  63. public static final String DICT_LIST_PREFIX = "dict:list:";
  64. public static final String DICT_ONE_PREFIX = "dict:one:";
  65. public static final String DICT_MAP_PREFIX = "dict:map:";
  66. public static final String SCRIPT = "script:";
  67. }
  68. }