Spring boot Caffeine缓存(二)——Cache、LoadingCache

本文深入探讨Spring Boot中Caffeine的Cache和LoadingCache,包括权重设置、大小限制、过期策略、刷新机制、监听器及其实现。通过对不同配置的讲解,帮助读者理解如何在实际应用中灵活使用Caffeine缓存。
摘要由CSDN通过智能技术生成
  1. Spring boot Caffeine缓存(一)——CacheManager与配置文件
  2. Spring boot Caffeine缓存(二)——Cache、LoadingCache
  3. Spring boot Caffeine缓存(三)——使用注解

前边文章主要介绍了下Caffeine以及CacheManager,这里说下Caffeine的Cache和LoadingCache的配置及用法。

Cache
先来看下Cache的接口代码

@ThreadSafe
public interface Cache<K, V> {

  /**
  * 从cache中获取值,如果没有直接返回null
  */
  @Nullable
  V getIfPresent(@Nonnull Object key);

  /**
  * 从cache中获取值,如果没有则通过给出的Function来加载值
  * 如果Function返回的值不为null会被放到缓存中,这个跟后边要讲到的CacheLoad很像
  */
  @Nullable
  V get(@Nonnull K key, @Nonnull Function<? super K, ? extends V> mappingFunction);

  /**
  * 按照给定的key返回一个map类型的集合
  */
  @Nonnull
  Map<K, V> getAllPresent(@Nonnull Iterable<?> keys);

  /**
  * 存值
  */
  void put(@Nonnull K key, @Nonnull V value);

  /**
  * 批量存放
  */
  void putAll(@Nonnull Map<? extends K,? extends V> map);

  /**
  * 将一个key值从缓存中清除,在方法级别有个@CacheEvict注解,其中有个evict,evict的实现也是调用的invalidate,他们最底层的实现是remove
  */
  void invalidate(@Nonnull Object key);


  void invalidateAll(@Nonnull Iterable<?> keys);


  void invalidateAll();

  /**
  * 获取当前缓存中的大概存放值,这个数字不一定准确,因为它可能会包含已经过期/失效的值
  */
  @Nonnegative
  long estimatedSize();

  /**
  * 当前缓存的一些记录,这块需要自己看下具体值才能了解,下边争取列出来这块
  */
  @Nonnull
  CacheStats stats();

  /**
  * 将集合转换为一个ConcurrentMap
  */
  @Nonnull
  ConcurrentMap<K, V> asMap();

  /**
   * 清除缓存中一些过期的值
   */
  void cleanUp();

  /**
   * 设定策略,这个后边我尽量也给列出来一块吧(如果记得)
   */
  @Nonnull
  Policy<K, V&g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值