package com.engine.salary.service;

public interface SalaryCacheService {

    /**
     * 添加缓存
     *
     * @param key
     * @param value
     * @param <T>
     * @return
     */
    <T> void set(String key, T value);

    /**
     * 添加缓存，有过期时间
     *
     * @param key
     * @param value
     * @param time
     * @return
     */
    <T> void set(String key, T value, int time);

    /**
     * 将对象转为json字符串缓存
     * @param key
     * @param value
     * @param <T>
     */
    <T> void setJson(String key, T value);

    /**
     * 将对象转为json字符串缓存，有过期时间
     * @param key
     * @param value
     * @param time
     * @param <T>
     */
    <T> void setJson(String key, T value, int time);


    /**
     * 获取缓存
     * @param key
     * @param <T>
     * @return
     */
    <T> T get(String key);


    /**
     * 获取缓存对象
     * @param key
     * @param clazz
     * @param <T>
     * @return
     */
    <T> T getJson(String key, Class<T> clazz);

    /**
     * 清除缓存
     *
     * @param key
     */
    void remove(String key);


}
