-
项目开发背景
如今大型系统开发中,为提高系统执行效率,通常会减少与数据库的交互,通常使用第三方缓存机制来储存更新频率低的数据,以提高系统的响应速度,但在这个缓存机制千奇百态的现代,我们会通常选择MemCached、EhCache、Redis等缓存机制来作为系统数据缓存,但在系统开发及使用中,我通常会遇到以下几个问题:1、缓存机制使用多样化,指在开发中各类缓存机制使用方式不一样,特别在更换缓存机制时,系统运行中变换其他缓存机制会付出很高的时间与代价,一个是开发人员的工作量,一个是之后的系统安全运行保证及测试;2、数据缓存不能分布式存储,如果缓存数据达到几十个G时,单凭一种缓存机制效率会很低,读写效率很慢,这就严重影响系统的性能;3、一旦单一的缓存机制报停了,系统的会出现异常,导致系统当掉,无法保证系统持续安全的运行;4、开发系统中程序员经常性考虑缓存数据的状态,是否是与数据库到达一致的;因此在这个缓存机制多样化的现代,我们必须统一化所有的缓存机制使用,以及各类缓存机制的统一管理调用就成为我们将要解决的问题。这样就孕育而出了我们这个产品ShellCached,ShellCached指缓存的壳,类似将所有各类缓存机制管理起来,统一分发与调用,可以将数据存储在不同的缓存机制中,达到分压的效果,而且帮我们统一化了使用注释方式来管理我们的数据存储状态,我们无需关注数据的存储状态。
-
项目目的
本次项目开发的目的主要有如下:
- 声明式统一管理缓存数据状态
指开发人员无需在缓存数据的状态中浪费太多开发时间,提高开发效率。
- 多样化缓存数据分压式存储
指可以保证高效读写的同时缓存海量数据,以配置型增加卸掉某种缓存机制。
- 缓存存储记忆恢复
指的是当系统重新运行时,ShellCached可以恢复一对一的存储数据源,而不需重新装载。
- 兼容间断某缓存当掉
指的是当在所有的缓存机制池中,允许间断间缓存机制出问题,不影响系统本身的正常运行。
项目优缺点:目前只支持与Spring无缝兼容,但已经兼容了MemCached、EhCache、Redis缓存机制,如果有需要可以扩展其他的缓存机制
-
项目概述
- 缓存机制接口对象介绍(com.shell.cached.Cache)
统一定义缓存对象的接口类,具体包括如下方法:
public boolean add(String key,Object object);
添加缓存对象,key 唯一名,key存在时,返回false
public boolean add(String key,Object object,Integer time);
添加缓存对象,time 存活时间,秒位单位
public <K> K get(String key);
取得对象,key 唯一名
public boolean put(String key,Object object);
添加缓存对象,存在时便会替换,key 唯一名,key存在时,返回true
public boolean put(String key,Object object,Integer time);
添加缓存对象,存活时间,秒位单位
public boolean repl(String key,Object object);
替换缓存对象key 唯一名,key不存在时,返回false
public boolean repl(String key,Object object,Integer time);
替换缓存对象key 唯一名,存活时间,秒位单位
public boolean del(String key);
删除缓存对象
public boolean dels(String wildKey);
通配符批量删除缓存对象
public boolean exist(String key);
是否存在对象
public boolean isUse();
是否能连接使用
2.各缓存机制的客户端管理类(com.shell.cached.manager.Manager<T>)
待定
3.缓存注释解析器(com.shell.cached.parser.CahcheParser)
4.管理各种缓存对象池(com.shell.cached.pool.CachePool)
CachePool.GET().getMaster()
获取主机缓存
CachePool.GET().printLog()
打印缓存池信息
-
项目缓存使用
- @CacheClean
- @CacheGain
- @CacheReplac
请点击我(如果需要指导,请联系550110979)