smart-cache是基于Ehcache2和Redis实现的Java分布式二级缓存.除基本操作以外实现多机集群时各级缓存的监管和抓取.
将单机缓存以特定结构同步至Redis存储,实现全局缓存统一管理.
编码方式动态创建CacheManager和StoreLocation.摆脱了烦人的ehcache.xml配置文件,同时避免服务重启或不可用时缓存未同步的问题.
使用自身维护的hash数据结构,替换Redis原生的hash类型,实现每个缓存元素过期时间可控.
使用Redis.Topic机制.实现缓存同步.
提供缓存管理监控页面.
实现多机本地缓存抓取功能.
类似Jedis的API,使用简便.
尽可能减少配置和封装,力求精简,够用即可.
使用方式
cmd
mvn clean install -Dmaven.test.skip=true
pom.xml
com.smartgroupId>smart-cacheartifactId>${VERSION}version>dependency>
spring.xml
bean>bean>bean>bean>
代码示例
cacheTemplate.set(name, key, value);// 设置cacheTemplate.get(name, key);// 获取cacheTemplate.del(name, key);// 删除cacheTemplate.rem(name);// 删除name下所有缓存cacheTemplate.cls();// 清空所有缓存cacheTemplate.fetch(name, key);// 抓取集群下所有单机一级缓存cacheTemplate.ttl(name, key, level);// 获取缓存ttlcacheTemplate.names();// 获取所有缓存namecacheTemplate.keys(name);// 获取name下所有keycacheTemplate.size(name);// 获取name下缓存数量cacheTemplate.values(name);// 获取name下缓存值
见:smart-cache/src/test/java/com/smart/cache/App.java
与Spring Cache联用
spring.xml
bean>
pom.xml
com.smartgroupId>smart-cache-autoloadartifactId>${VERSION}version>dependency>
spring.xml
bean>
缓存监控
web.xml
SmartCacheservlet-name>com.smart.servlet.CacheAdminServletservlet-class>usernameparam-name>adminparam-value>init-param>passwordparam-name>adminparam-value>init-param>servlet>SmartCacheservlet-name>/smartcache/*url-pattern>servlet-mapping>
项目演示
监控页面
Showcase.AutoLoadCache
Showcase.Spring Cache
注意: 若修改了序列化方式,务必清空Redis上原缓存数据
完整配置
bean>bean> bean>bean>
见:smart-cache/src/test/java/spring.xml
Redis集群配置
bean> bean> bean> bean> bean> bean>set> constructor-arg> constructor-arg>constructor-arg>constructor-arg>bean>bean>
建议咨询
QQ:20365124 email:[email protected]