simple-cache说明文档
1、注意事项:
建议系统各项业务以层的形式使用缓存,大弧度缓解数据库压力
2、面向问题:
1) 缓解数据库压力,提升服务端并发上限,提升业务代码执行效率。
3、核心对象(注解):
1) @CacheWrite
写缓存,方法执行后,将结果写入缓存。
2) @CacheWipe:
清理单个缓存,方法执行后,清理缓存
4、功能特色:
1) 弱化缓存“层”的概念
2) 支持缓存KEY
3) 支持缓存带参写入与清理
4) 任意Bean方法均支持缓存
5) 支持redis、memcached、localCache等缓存(凡是支持超时时间缓存均可)
5、如何为一个方法添加缓存
1) 简单使用,不要求清理,不强调实时性(默认缓存时间10秒)
@CacheWrite public TagForUser loadUserTags(Integer uid,Integer tid){ }
注:方法执行后,程序会根据类、方法、参数值生成一个方法KEY,并且将方法的结果写入缓存,并设置validTime有效时长,默认10秒,下次调用直接返回缓存,不会进入方法代码逻辑。
2) 简单使用,不要求清理,区分参数,设置缓存时间
//单个参数 @CacheWrite(fields="uid") public TagForUser loadUserTags(Integer uid,Integer tid){ } //多个参数 @CacheWrite(fields={"uid","tid"}) public TagForUser loadUserTags(Integer uid,Integer tid){ } //设置缓存时间 @CacheWrite(fields={"uid","tid"},validTime=60) public TagForUser loadUserTags(Integer uid,Integer tid){ }
注:方法执行后,程序会根据类、方法、fields指定的参数值生成一个方法KEY,并且将方法的结果写入缓存,并设置validTime有效时长,默认10秒,下次调用直接返回缓存,不会进入方法代码逻辑。
3) 精准使用,指定key,可清理:
@CacheWrite(key=CacheFinal.SYSTEM_TAGS,validTime=3600) public ListloadSysTags(){ } //指定参数/时间 @CacheWrite(key=CacheFinal.ANCHOR_TAGS,validTime=60,fields="uid") public ListloadAnchorTags(Integer uid){ }
注:方法执行后,程序会根据CacheWrite指定的key生成缓存。如果指定了fields字段,程序会根据key+fields字段的值生成缓存。并设置validTime有效时长,默认10秒,下次调用直接返回缓存,不会进入方法代码逻辑。
6、数据更新后,如何清理缓存1) 常规清理,清理指定key
//不强调参数,仅清理 @CacheWipe(key=CacheFinal.ANCHOR_TAGS) public Integer saveUserTags(TagForUser userTag){ } //强调参数,清理 @CacheWipe(key=CacheFinal.ANCHOR_TAGS,fields="userTag.tid") public Integer saveUserTags(TagForUser userTag){ }
注:方法执行后,程序会根据CacheWipe 指定的KEY清理缓存,如果指定了fields字段,程序会根据key+fields字段的值清理缓存。
2)多缓存清理,清理多套key
//不强调参数,清理多套缓存 @CacheWipe(key=CacheFinal.PET_YEAR_VALUE_CACHE), @CacheWipe(key=CacheFinal.PET_YEAR_DAY_VALUE_CACHE)} public Integer addSendValue(Integer uid,Integer sendValue){ } @CacheWipe(key=CacheFinal.PET_YEAR_VALUE_CACHE,fields="uid"), @CacheWipe(key=CacheFinal.PET_YEAR_DAY_VALUE_CACHE,fields="uid")} public Integer addSendValue(Integer uid,Integer sendValue){ }
注:方法执行后,程序会根据CacheWipes读取CacheWipe集合,并分别执行常规清理规则
7、运行环境
版本JAR:simple-cache-1.0.jar 下载地址:https://pan.baidu.com/s/1kUVgxhX
依赖JAR:aspectjrt.jar spring-core.jar
运行环境:JDK1.8
8、配置文件(Spring):
由于相关配置被开源中国过滤,请参考文档:https://shimo.im/doc/GUqZ1IEqkF4tU67K?r=Z1NMPQ
9、版权与作者
作者:WebSOS
反馈邮箱:644556636@qq.com
swoole框架目前支持5种Cache适配器,可以配置apps/configs/cache.php的type来设定不同类型的Cache Memcache 使用memcache缓存数据,配置示例: $cache['master'] = array( 'type' => 'Memcache', 'use_memcached' => true, //使用memcached扩展 '
1、使用 Ehcache 缓存 ActiveRecord 可以使用缓存以大大提高性能,默认的缓存实现是 ehcache,使用时需要引入 ehcache 的 jar 包及其配置文件,以下代码是Cache使用示例: public void list() { List<Blog> blogList = Blog.dao.findByCache("cacheName", "key", "selec
我的Spring应用程序由两个上下文xml配置文件组成,第一个是根上下文。xml仅扫描非控制器带注释的bean: 而第二个servlet上下文。xml包含所有spring mvc设置和扫描控制器带注释的bean web.xml上的DispatcherServlet配置如下所示 我想尝试基于注释的缓存,所以我将以下bean定义添加到root-context.xml 并使用一个带有注释的类来测试这一点
You can do more elaborate grouping by setting up cache_id groups. This is accomplished by separating each sub-group with a vertical bar "|" in the cache_id value. You can have as many sub-groups as yo
在本章中,我们将研究Joomla Cache Manager 。 您可以安装缓存控制器插件,这有助于提高Joomla的性能。 您还可以关闭特定页面和组件上的缓存。 Joomla缓存管理 以下是用于设置Joomla缓存管理器的简单步骤 - Step (1) - 单击Joomla Global Configuration Cache Management 。 您将看到如下所示的屏幕。 以下是Jooml
来源 Hutool-cache模块最早受到jodd-cache的启发(如今大部分逻辑依旧与jodd保持一致),此模块提供一种缓存的简单实现方案,在小型项目中对于简单的缓存需求非常好用。 介绍 Hutoo-cache模块提供了几种缓存策略实现: FIFOCache FIFO(first in first out) 先进先出策略。元素不停的加入缓存直到缓存满为止,当缓存满时,清理过期缓存对象,清理后依