# H-Cache **Repository Path**: OrangeNull/H-Cache ## Basic Information - **Project Name**: H-Cache - **Description**: 基于Java原生框架实现的轻量级缓存框架 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2019-05-30 - **Last Updated**: 2020-12-17 ## Categories & Tags **Categories**: cache-modules **Tags**: None ## README # H-Cache #### 介绍 ###### 1.基于Java原生框架实现的轻量级缓存框架,实现原理仿memcache 实现了注解缓存、lru缓存算法、无用缓存自动回收等功能 ###### 2.使java开发者无需关心缓存的删除以及回收,提供了缓存的多种使用方式 ###### 3.数据存储在内存空间当中,减少连接nosql的连接时间,加快了缓存的操作速度 ###### 4.提供了配置redis的方式 #### 使用说明 ###### 1.将项目导为maven jar包之后,引入项目,在项目中配置缓存的启动方法 ##### 示例: ###### public void cacheStart(){ ##### //H-Cache配置方式 ###### LocalConfig localConfig=new LocalConfig(); ###### //指定使用方法注解的缓存前缀key,防止工具类缓存冲突 可选 ###### localConfig.setCacheKey(""); ###### //是否开启自动回收 true开 false关 ###### localConfig.setOpenRecycle(true); ###### //缓存自动回收的检测频率 传入参数为秒 ###### localConfig.setRecycleTime(120); ###### //缓存回收时间 系统会记录最后一次使用时间 如果超过配置时间便会回收 ###### //传入参数为小时 ###### localConfig.setIntervalTime(1); ###### //缓存数据的最大量 默认为300 ###### localConfig.setCacheMaxSize(3000); ###### //启动缓存 ###### Bootstrap.start(localConfig); ###### } ##### //框架提供配置redis数据库的缓存方式 ###### public void cacheStart(){ ###### //redis配置方式 ###### RedisConfig redisConfig=new RedisConfig(); ###### //设置redis连接地址 ###### redisConfig.setADDRESS("120.0.0.1"); ###### //数据库密码,默认为空 ###### redisConfig.setKEY(null); ###### //设置redis连接池的Jedis实例数量 ###### redisConfig.setMAX_TOTAL(2000); ###### //最多有多少个状态为空闲的Jedis实例 ###### redisConfig.setMAX_IDLE(100); ###### //redis端口号 ###### redisConfig.setPORT(6379); ###### //启动缓存 ###### Bootstrap.start(redisConfig); ###### } #### 注解使用方式 ###### @CachePut ###### 字段: ###### key //缓存的key ###### time //缓存的有效时间 选填 ###### fields //将方法的入参参数数据加入缓存key的生成策略 ###### //如public void getUser(User user) 则@CachePut(key = "getXXXUser",fields = {"user.userName"}) ###### ###### @CacheClear ###### 字段: ###### key //缓存的key ###### fields //将方法的入参参数数据加入缓存key的生成策略 ###### //如public void removeUser(User user) 则@CacheClear(key = "getXXXUser",fields = {"user.userName"}) ###### ###### 在对数据获取的方法上可使用put方式,在对数据的改删方法上可用clear方式将缓存数据删除,保证缓存数据的可用性 ###### #### 工具类调用方式 ###### 1.获取缓存数据 ###### HCacheTool.getCache("缓存的key",返回数据的类型.class); ###### 注:本地缓存可直接使用HCacheTool.getCache("缓存的key");的方式,配置了redis必须指定返回类型 ###### ###### 2.添加缓存数据 ###### HCacheTool.setCache("缓存的key",数据,有效时间); ,指定过期时间 ###### HCacheTool.setCache("缓存的key",数据); 不指定过期时间 ###### ###### 3.创建计数器 ###### HCacheTool.createCounter("计数器key",计数器最大容量);//该方法创建一个计数器 ###### ###### HCacheTool.increment("");//将计数器值自增1 ###### 用于数量的安全增长 如果数量超过最大容量则返回false ###### ######