package com.ruoyi.monitor.service;

import java.util.Map;

/**
 * 缓存管理Service接口
 * 
 * @author ruoyi
 * @date 2025-12-19
 */
public interface ICacheManagerService 
{
    /**
     * 缓存数据
     * 
     * @param key 缓存键
     * @param data 数据
     * @param expiration 过期时间(秒)
     * @return 缓存结果
     */
    public Map<String, Object> cacheData(String key, Object data, long expiration);

    /**
     * 获取缓存数据
     * 
     * @param key 缓存键
     * @return 缓存数据
     */
    public Object getCachedData(String key);

    /**
     * 失效缓存
     * 
     * @param pattern 缓存键模式
     * @return 失效结果
     */
    public Map<String, Object> invalidateCache(String pattern);

    /**
     * 预加载缓存
     * 
     * @param dataType 数据类型
     * @return 预加载结果
     */
    public Map<String, Object> preloadCache(String dataType);

    /**
     * 监控缓存性能
     * 
     * @return 性能指标
     */
    public Map<String, Object> monitorCachePerformance();

    /**
     * 配置缓存策略
     * 
     * @param cacheConfig 缓存配置
     * @return 配置结果
     */
    public Map<String, Object> configureCachePolicy(Map<String, Object> cacheConfig);

    /**
     * 分布式缓存更新
     * 
     * @param key 缓存键
     * @param data 数据
     * @return 更新结果
     */
    public Map<String, Object> distributeCacheUpdate(String key, Object data);

    /**
     * 分析缓存命中率
     * 
     * @param timeRange 时间范围
     * @return 命中率分析
     */
    public Map<String, Object> analyzeCacheHitRate(Map<String, Object> timeRange);

    /**
     * 清理过期缓存
     * 
     * @return 清理结果
     */
    public Map<String, Object> cleanExpiredCache();

    /**
     * 获取缓存统计信息
     * 
     * @return 统计信息
     */
    public Map<String, Object> getCacheStatistics();
}