本架构参照现有的分布式缓存服务以及提供的JAVA客户端,封装了一整套对缓存数据访问以及操作的API
本架构有相当一部分功能用到了分布式缓存,这一部分功能完全基于这一套API进行开发
本架构的最终目的为不管现有分布式缓存服务或者驱动如何更新迭代,本架构与之相关的功能不受任何影响
分布式缓存通用API需要使用本框架的用户自己实现相关功能,并维护相应的链接会话。
本架构自身也有提供实现好了的3套分布式缓存通用API,分别为
基于redis缓存服务jedis驱动实现
基于memcached缓存服务xmemcached驱动实现
基于JAVA虚拟机内存实现
如果需要实现分布式缓存通用API可以实现org.jtry.framework.cache.CacheAccess接口或者继承org.jtry.framework.cache.BaseCacheAccess类,实际例子如下
public class MemcachedAccess<C, K, V> extends BaseCacheAccess<C, K, V> {
public class CacheAccessInJvmHeap<C, K, V> implements CacheAccess<C, K, V> {
然后再实现其中的每一个方法。
具体可以下载参照本架构提供的分布式缓存附加包之中已有的相应实现。
如果需要在实际业务处理逻辑中使用缓存访问器可以使用org.jtry.framework.cache.CacheUtil类,调用方式如下
CacheAccess<String, Integer, User> cacheAccess = CacheUtil.getCacheAccess();
其中接口声明的3个泛型分别为外部唯一键使用的java类型,内部键使用的java类型,内部值使用的java类型
也可以指定实现来获取缓存访问器,不指定则使用框架定义的默认缓存实现,通常为org.jtry.framework.init.Initial常量类的SYSTEM_ACHIEVE_CACHE_ACCESS属性
CacheAccess<String, Integer, User> cacheAccess = CacheUtil.getCacheAccess(CacheAccessInJvmHeap.
class);
也可以使用其他数据类型接口获取缓存访问器,如
基于简单键值对API的缓存访问器
CacheSingleAccess<String, User> cacheSingleAccess = CacheUtil.getCacheAccess();
基于串API的缓存访问器
CacheListAccess<String, User> cacheListAccess = CacheUtil.getCacheAccess();
基于散列API的缓存访问器
CacheMapAccess<String, Integer, User> cacheMapAccess = CacheUtil.getCacheAccess();
基于集合API的缓存访问器
CacheSetAccess<String, User> cacheSetAccess = CacheUtil.getCacheAccess();
基于有序集合API的缓存访问器
CacheSortedSetAccess<String, User> cacheSortedSetAccess = CacheUtil.getCacheAccess();
基于外部键操作API的缓存访问器
CacheDataAccess<String> cacheDataAccess = CacheUtil.getCacheAccess();
具体使用请自行摸索,使用效能取决于实现方式