七鱼缓存库
七鱼缓存层基于不可变数据模型设计, 引用关系来实现不同缓存之间的通信。七鱼缓存库实现如下两个功能:
实体
和列表
的存储- 多个缓存的实例引用同一份数据源
- 不同缓存实例之间的通信
注: 接入的时候, 可以根据需求, 使用不可变数据概念(Immutable.js)。
构建npm指令
"dev": "webpack -p --config webpack.config.js",
"test": "karma start karma.conf.js"
使用说明
- 保证数据的唯一性, 多个缓存的实例引用同一份数据源
- Hash实体以
id
为主键, 现不支持自定义
// 继承 Super var { this } SuperCacheprototype = Object; // 实例化 var supercache = name : 'super' ; // 初始化设置列表 supercache; // 继承 Sofia var { this } SofiaCacheprototype = Object; // 实例化 var sofiacache = name : 'sofia' ; // 初始化设置列表 sofiacache;
接口说明
全局缓存接口
getCacheByName(name)
通过名称查询全局缓存中 对象
// equal supercache; sofiacache;
getCacheList(name, key)
通过 名称
查询全局缓存中 列表值
supercache sofiacache
getCacheHash(name, id)
通过 名称
和 id
查询全局缓存中 哈希值
supercache sofiacache
列表缓存接口
setListInCache(array|object, key)
对列表数据的 添加
和 更新
, 并对Hash进行 添加
和 更新
// add list sofiacache; // add object sofiacache; // sofia-list-1 : [{id : 'a', name : 'a'}, {id : 'b', name : 'b'}]
getListInCache(key)
通过列表 key
获取相应列表索引
sofiacache; sofiacache; // list : [{id : 'a', name : 'a'}]
saveItemToCache(array|object)
保存数据项到 Hash
中
// add list sofiacache; // add object sofiacache; // hash: {a : {id : 'a', name : 'a'}, b : {id : 'b', name : 'b'}}
unshiftItemInCache(array|object, key)
前向插入数据到 key
列表
// add list sofiacache; // add object sofiacache; // sofia-list-1: [{id : 'b', name : 'b'}, {id : 'a', name : 'a'}]
deleteDataInCache(id)
同时删除 列表
中数据 和 Hash
中数据
sofiacache; sofiacache; // hash : {}, list : []
removeItemInCache(id, key)
仅删除 key
列表中, id
的数据项, 不删除Hash中数据
sofiacache; sofiacache; // hash : {a : {id : 'a', name : 'a'}}, list : []