基于 redis 和 ehcache 的两级缓存组件 uncode-cache

Apache
Java
跨平台
2017-06-26
冶卫军

uncode-cache

基于 redis 和 ehcache 的两级缓存组件,支持spring-boot,使用方便,有管理页面。

功能概述

  1. 统一注解支持

  2. 可以设置缓存定时自动更新时间

  3. 可以缓存预热

  4. 可以设置缓存依赖消除

  5. 可以添加监听,使用实现命中率、读/写耗时等

spring boot

1. application.peroperties

uncode.cache.redisClusterAddress=127.0.0.1:7000;127.0.0.1:7001;127.0.0.1:7002;127.0.0.1:7003;127.0.0.1:7004;127.0.0.1:7005
uncode.cache.redisPoolMaxIdle=
uncode.cache.redisPoolMinIdle =
uncode.cache.redisPoolMaxTotal=
uncode.cache.redisPoolMaxWaitMillis=
uncode.cache.redisClusterTimeout=
uncode.cache.redisClusterMaxRedirections=
uncode.cache.redisClusterPassword
uncode.cache.scanPackage=cn.uncode.cache
uncode.cache.useLocal=true
uncode.cache.openCacheLog=false
uncode.cache.storeRegion=uncode-cache-demo

2. spring boot启动类

@SpringBootApplication
@EnableAspectJAutoProxy
public class Application {
    public static void main(String[] agrs){
        SpringApplication.run(Application.class,agrs);
    }
}

spring配置

<bean id="propertyConfigurer" class="cn.uncode.util.config.UncodePropertyPlaceholderConfigurer"> 
    <property name="ignoreResourceNotFound" value="true" /> 
    <property name="locations"> 
        <list> 
            <value>classpath:config.properties</value> 
        </list> 
    </property>
</bean> 

<!-- 设置代理 -->
<aop:aspectj-autoproxy proxy-target-class="true"/>

<!-- 配置缓存池 -->
<bean id="jedisCluster" class="com.ksudi.proxycache.store.redis.JedisClusterFactory" />
<bean id="cache" class="com.ksudi.proxycache.store.redis.RedisStore">
    <property name="jedisCluster" ref="jedisCluster" />
</bean>

<!-- 配置缓存代理管理器 -->
<bean id="proxyCacheManager" class="com.ksudi.proxycache.ConfigCacheManager"
    init-method="init">
    <!-- 注解的扫描路径 -->
    <property name="scanPackage" value="com.ksudi.star.service"></property>
    <property name="cache" ref="cache" />
</bean>

<!-- 配置aop缓存处理器 -->
<bean class="com.ksudi.proxycache.framework.aop.handle.CacheManagerHandle">
    <property name="cacheManager" ref="proxyCacheManager" />
</bean>

核心注解

@Cache(
    preload = true,//是否需要缓存预热,会在系统启动时自已加载,支持特殊场景
    preloadParameters = {"param1", "param2"},//加载方法参数,目前只支持String
    expiredTime = 60,//缓存有效时间,单位秒
    cleanTimeExpressions = "0 15 10 ? * *",//缓存定时清除时间表达式,如:每天10点15分触发
    cacheCleans={//依赖清除bean定义,当该方法被调用时清除当前缓存,可定义多个
        @CacheClean(
            beanName="couriersService6",//bean名称
            methodName="updateCourierPwd"//方法名称
        )
    }
)
public User getUserById(){...}

工具类

可以直接使用cn.uncode.cache.CacheUtils工具类。

管理页面

输入图片说明

特别说明

本项目使用了部分开源项目代码,保留了原作者的名称和所有内容,同时向作者致敬。

加载中

评论(6)

tengyz
tengyz
模仿ACE的吧
冶卫军
冶卫军 软件作者
不支持
余生只有你
余生只有你
请问目前uncode-cache支持redis非集群模式吗
OSC_AYkXbu
OSC_AYkXbu
收藏
l
lijunwyf@163.com
不错,好用
Mr_Qi
Mr_Qi
#j2cache# 比较过了么
Mr_Qi
Mr_Qi
#uncode-cache# @红薯 j2cache啊~

暂无资讯

暂无问答

Uncode系列开源后端开发组件

Uncode 是基于Java 语言的一系列开源后端开发组件,主要包括:移动后端开发框架Uncode-BaaS,通用数据库访问组件Uncode-DAL和分布式任务调度组件Uncode-Schedule。其核心设计目标是使移动后端...

2016/02/15 14:51
3K
5
Java通用数据访问层 Uncode-DAL

Uncode-DAL 网站 : http://git.oschina.net/uncode/uncode-dal-all 本着不重复造轮子的原则,基于mybatis、spring jdbc、hibernate等ORM的通用数据访问层,支持基于datasource的读写分离、主...

2016/04/09 10:06
88
2
uncode移动后端云【www.uncode.cn】--简介

Uncode移动后端云,专注于移动应用后端服务,专业的MBaaS服务商! 任何企业或个人,通过Uncode移动后端云,都可以给移动应用快速定制个性化的后端业务逻辑,可以大大降低后端开发时间和成本。...

2014/08/16 20:39
1K
0
分布式定时任务框架---Uncode Schedule

分布式定时任务框架---Uncode Schedule rabbitGYK 关注 2016.11.27 20:36* 字数 1446 阅读 7141评论 5喜欢 36赞赏 1 博客原文 作为一个支付公司的项目组,经常会有很多对账功能(签约对账、支...

11/02 13:33
32
0
Uncode移动后端云--MBaaS简介

MBaaS(移动后端即服务:Mobile Backend as a Service)是一种新兴移动中间服务,已经成为当今技术市场中最热门的趋势之一。与SaaS(软件即服务:Software as a Service)、IaaS(基础设施即...

2014/08/21 23:31
411
1
轻量级java消息中间件简介

自已实现了一个轻量级的java消息中间件,欢迎学习交流。https://github.com/uncodecn/uncode-mq

2016/08/03 18:26
475
1
使用Python内建chr, ord实现的简单的加/解密

###Python中有两个个内建方法,用于解决0-255与相应ascii码转换: 1. chr() Return a string of one character with ordinal i; 0 <= i < 256. 也就是,返回代表整数范围内0-255对应的字符。...

2014/03/25 20:54
2K
0
Mybatis---xml if表达式判断问题

测试别人的报表,前台报错提示查询失败。马上看后台报下面这个错误: ### Cause: java.lang.NumberFormatException: For input string: "y" at org.mybatis.spring.MyBatisExceptionTranslat...

09/18 18:07
34
0
这些优秀的国产分布式任务调度系统,你用过几个?

分布式调度在互联网企业中占据着十分重要的作用,尤其是电子商务领域,由于存在数据量大、高并发的特点,对数据处理的要求较高,既要保证高效性,也要保证准确性和安全性,相对比较耗时的业务...

04/18 11:47
36
0
汉字与区位码(2) - 分析

在没有 Uncode 的时代, 用 256 个 ACSII 只是方便了英文, 其他文字怎么办? 那时是各自为政的, 譬如中文就有: GB2312-80(国内简体)、Big5(台湾繁体)、HKSCS(香港繁体), 但它们互不兼容. GB231...

2014/09/26 15:32
9
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部