基于 redis 和 ehcache 的两级缓存组件,支持spring-boot,使用方便,有管理页面。
统一注解支持
可以设置缓存定时自动更新时间
可以缓存预热
可以设置缓存依赖消除
可以添加监听,使用实现命中率、读/写耗时等
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
@SpringBootApplication @EnableAspectJAutoProxy public class Application { public static void main(String[] agrs){ SpringApplication.run(Application.class,agrs); } }
<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工具类。
本项目使用了部分开源项目代码,保留了原作者的名称和所有内容,同时向作者致敬。
本文向大家介绍Spring Cache手动清理Redis缓存,包括了Spring Cache手动清理Redis缓存的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Spring Cache手动清理Redis缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 注册cacheRedisTemplate 将 cache 的 RedisTemp
swoole框架目前支持5种Cache适配器,可以配置apps/configs/cache.php的type来设定不同类型的Cache Memcache 使用memcache缓存数据,配置示例: $cache['master'] = array( 'type' => 'Memcache', 'use_memcached' => true, //使用memcached扩展 '
问题内容: 在我的Spring驱动的应用程序中,我使用Hibernate(4.2.15.Final)和EhCache(2.6.9)作为第二级缓存,在标准的持久层中进行了设置。 一切正常。但是,将条目放入第二级缓存有时会花费一些时间。 我已经在一个显式文件中配置了域模型类的缓存(我没有配置默认缓存): 在持久性上下文启动时,我收到以下INFO消息记录: 以及执行期间的以下警告 AFAIK 必须调整放
Hibernate 的 Session 在事务级别进行持久化数据的缓存操作。 当然,也有可能分别为每个类(或集合),配置集群、或 JVM 级别(SessionFactory 级别)的缓存。你甚至可以为之插入一个集群的缓存。注意,缓存永远不知道其他应用程序对持久化仓库(数据库)可能进行的修改 (即使可以将缓存数据设定为定期失效)。 通过在 hibernate.cache.provider_class
1、使用 Ehcache 缓存 ActiveRecord 可以使用缓存以大大提高性能,默认的缓存实现是 ehcache,使用时需要引入 ehcache 的 jar 包及其配置文件,以下代码是Cache使用示例: public void list() { List<Blog> blogList = Blog.dao.findByCache("cacheName", "key", "selec
我有一个spring/hibernate项目,我试图通过ehcache和terracotta将二级缓存添加到hibernate。一切似乎都很好,我甚至可以在terracota控制台中看到我试图缓存的实体的条目。但根据数据库的统计数据和日志,根本没有缓存任何内容! 负载命中率是0%,负载统计也是0。我做错了什么? 这是我所做的,我通过maven添加了所需的罐子。 更改了我的Hibernate属性以启