package com.muyu.processing.utils;

import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import org.springframework.stereotype.Component;

/**
 * 缓存工具类
 * @Author：杨鹏
 * @Package：com.muyu.processing.utils
 * @Project：cloud-vehicle
 * @name：CacheUtil
 * @Date：2024/10/4 15:14
 */
@Component
public class CacheUtil<T> {

    /**
     * 缓存对象
     */
    private final Cache<String, T> cache;

    /**
     * 默认构建函数
     */
    public CacheUtil(){
        this.cache = Caffeine.newBuilder()
                .maximumSize(500L)
                .build();
    }

    /**
     * 获得缓存
     * @param key 键
     * @return 返回的值
     */
    public T get(String key){
        return cache.getIfPresent(key);
    }

    /**
     * 添加缓存
     * @param key 键
     * @param value 值
     */
    public void put(String key, T value){
        cache.put(key, value);
    }

    /**
     * 删除缓存
     * @param key 键
     */
    public void remove(String key){
        cache.invalidate(key);
    }

}
