Module bus.cache

Class AbstractMetrics

java.lang.Object
org.miaixz.bus.cache.support.metrics.AbstractMetrics
All Implemented Interfaces:
Metrics
Direct Known Subclasses:
H2Metrics, MySQLMetrics, PostgreSQLMetrics, SqliteMetrics

public abstract class AbstractMetrics extends Object implements Metrics
抽象缓存命中率统计实现

基于数据库存储的缓存命中率统计实现,使用队列异步写入数据库, 支持并发更新和乐观锁机制,确保数据一致性。

Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • AbstractMetrics

      protected AbstractMetrics(Map<String,Object> context)
      构造方法
      Parameters:
      context - 上下文参数
    • AbstractMetrics

      public AbstractMetrics(String url, String username, String password)
      构造方法
      Parameters:
      url - 数据库URL
      username - 用户名
      password - 密码
  • Method Details

    • newHashMap

      public static Map<String,Object> newHashMap(Object... keyValues)
      创建新的HashMap
      Parameters:
      keyValues - 键值对数组
      Returns:
      HashMap实例
    • jdbcOperationsSupplier

      protected abstract Supplier<org.springframework.jdbc.core.JdbcOperations> jdbcOperationsSupplier(Map<String,Object> context)
      创建JdbcOperations并初始化数据库

      1. 创建JdbcOperations实例 2. 初始化数据库(如加载SQL脚本、创建表、初始化表等)

      Parameters:
      context - 构造函数中的其他参数
      Returns:
      初始化完成的JdbcOperations对象
    • transferResults

      protected abstract Stream<AbstractMetrics.DataDO> transferResults(List<Map<String,Object>> map)
      将数据库查询结果转换为DataDO流
      Parameters:
      map - 数据库查询结果
      Returns:
      DataDO流
    • hitIncr

      public void hitIncr(String pattern, int count)
      增加命中次数
      Specified by:
      hitIncr in interface Metrics
      Parameters:
      pattern - 缓存模式/分组名称
      count - 增加的命中数量
    • reqIncr

      public void reqIncr(String pattern, int count)
      增加请求次数
      Specified by:
      reqIncr in interface Metrics
      Parameters:
      pattern - 缓存模式/分组名称
      count - 增加的请求数量
    • getHitting

      public Map<String,Metrics.Snapshot> getHitting()
      获取缓存命中率统计信息
      Specified by:
      getHitting in interface Metrics
      Returns:
      缓存命中率统计映射,键为缓存模式/分组名称,值为HittingDO对象
    • reset

      public void reset(String pattern)
      重置指定缓存模式的命中率统计
      Specified by:
      reset in interface Metrics
      Parameters:
      pattern - 缓存模式/分组名称
    • resetAll

      public void resetAll()
      重置所有缓存模式的命中率统计
      Specified by:
      resetAll in interface Metrics
    • tearDown

      @PreDestroy public void tearDown()
      销毁方法

      使用@PreDestroy注解,在Bean销毁时等待队列处理完毕并关闭执行器