memorycache 库
介绍
一个内存缓存库
1 支持缓存的读写操作
场景:
- 支持缓存的读写操作 是否商用:是 目标:支持缓存的读写操作
1.1 缓存读写
1.1.1 主要接口
public class LruDiskCache {
/* 默认缓存最大容量 */
public static let DEFAULT_MAX_SIZE: Int64 = 3 * 1024 * 1024
/* 默认缓存路径 */
public static let DEFAULT_PATH: String = "./cache"
/* 默认缓存路径名 */
public static let DEFAULT_NAME: String = "LruDiskCache"
/*
* 默认构造,构造一个 LruDiskCache 缓存类
* 参数 path - 缓存路径,默认 ./cache/LruDiskCache, path 为非法目录路径时,抛 MemoryCacheException
* 参数 maxSize - 缓存最大容量,默认 DEFAULT_MAX_SIZE, 如果大于 DEFAULT_MAX_SIZE 或者小于1 则抛 MemoryCacheException
*/
public init(path!: String = DEFAULT_PATH + FileUtils.SEPARATOR + DEFAULT_NAME, maxSize!: Int64 = DEFAULT_MAX_SIZE)
/*
* 获取缓存目录路径
* 返回值 String - 缓存目录路径
*/
public func getPath(): String
/*
* 获取缓存表
* 返回值 CustomMap<String, DiskCacheEntry> - 缓存表
*/
public func getCacheMap(): CustomMap<String, DiskCacheEntry>
/*
* 获取缓存当前容量
* 返回值 Int64 - 缓存当前容量
*/
public func getSize(): Int64
/*
* 获取缓存最大容量
* 返回值 Int64 - 缓存最大容量
*/
public func getMaxSize(): Int64
/*
* 设置缓存最大容量, 如果大于 DEFAULT_MAX_SIZE 或者小于1 则抛 MemoryCacheException
* 参数 size - 缓存最大容量
*/
public func setMaxSize(size: Int64)
/*
* 保存缓存值
* 参数 key - 缓存键
* 参数 context - 缓存值
*/
public func set(key: String, context: String)
/*
* 保存缓存值
* 参数 key - 缓存键
* 参数 context - 缓存值
*/
public func set(key: String, context: Array<UInt8>)
/*
* []操作符,保存缓存值,等同于 set
* 参数 key - 缓存键
* 参数 context - 缓存值
*/
public operator func [](key: String, context: String)
/*
* []操作符,保存缓存值,等同于 set
* 参数 key - 缓存键
* 参数 context - 缓存值
*/
public operator func [](key: String, context: Array<UInt8>)
/*
* 读取缓存值
* 参数 key - 缓存键
* 返回值 Array<UInt8> - 读取缓存值
*/
public func get(key: String): Array<UInt8>
/*
* 根据键值判断缓存是否存在
* 参数 key - 缓存键
* 返回值 Bool - 是否存在
*/
public func contains(key: String):Bool
/*
* 移除缓存值
* 参数 key - 缓存键
*/
public func remove(key: String): Unit
}
public class FifoCache <: Cache {
/*
* 默认构造,构造一个 FifoCache 缓存类
* 参数 capacity - 缓存容量, 小于1抛 MemoryCacheException
*/
public init(capacity: Int64)
/*
* 根据键值判断缓存是否存在
* 参数 key - 缓存键
* 返回值 Bool - 是否存在
*/
public func contains(key: String): Bool
/*
* 获取缓存容量
* 返回值 Int64 - 缓存容量
*/
public func getCapacity(): Int64
/*
* 设置缓存容量
* 参数 capacity - 缓存容量, 容量小于1时抛 MemoryCacheException
*/
public func setCapacity(capacity: Int64)
/*
* 清空缓存
*/
public func clear(): Unit
/*
* 读取缓存值
* 参数 key - 缓存键
* 返回值 Option<String> - 读取缓存值
*/
public func get(key: String): Option<String>
/*
* 保存缓存值
* 参数 key - 缓存键
* 参数 value - 缓存值
*/
public func put(key: String, value: String)
/*
* 移除队列缓存值
* 返回值 Option<String> - 移除的值
*/
public func remove(): Option<String>
}
public class MemoryCache <: Cache {
/*
* 默认构造,构造一个 MemoryCache 缓存类
* 参数 capacity - 缓存容量, 小于1抛 MemoryCacheException
*/
public init(capacity: Int64)
/*
* 根据键值判断缓存是否存在
* 参数 key - 缓存键
* 返回值 :Bool - 是否存在
*/
public func contains(key: String): Bool
/*
* 获取缓存容量
* 返回值 Int64 - 缓存容量
*/
public func getCapacity(): Int64
/*
* 设置缓存容量
* 参数 capacity - 缓存容量,容量小于1时抛 MemoryCacheException
*/
public func setCapacity(capacity: Int64)
/*
* 清空缓存
*/
public func clear(): Unit
/*
* 读取缓存值
* 参数 key - 缓存键
* 返回值 Option<String> - 读取缓存值
*/
public func get(key: String): Option<String>
/*
* 保存缓存值
* 参数 key - 缓存键
* 参数 value - 缓存值
*/
public func put(key: String, value: String): Unit
/*
* 移除队列缓存值
* 返回值 Option<String> - 移除的值
*/
public func remove(key: String): Option<String>
}
public interface Cache {
/*
* 读取缓存值
* 参数 key - 缓存键
* 返回值 Option<String> - 缓存值
*/
func get(key: String): Option<String>
/*
* 保存缓存值
* 参数 key - 缓存键
* 参数 value - 缓存值
*/
func put(key: String, value: String): Unit
}
public class CustomMap<K, V> where K <: Hashable & Equatable<K> {
/*
* 获取第一个键值, CustomMap 为空时抛 NoneValueException
* 返回值 k - 键值
*/
public func getFirstKey(): k
/*
* 判断键值是否存在
* 参数 k - 键值
* 返回值 Bool - 是否存在
*/
public func hasKey(k: K):Bool
/*
* 执行自定义函数,对每一对键值对进行自定义操作
* 参数 fn: (K, V) -> Unit - 自定义函数
*/
public func each(fn: (K, V) -> Unit)
/*
* 根据缓存的key值获取对应的缓存内容
* 参数 key - 键
* 返回值 ?V - 值
*/
public func get(key: K): ?V
/*
* 判断是否为空
* 返回值 Bool - 是否为空
*/
public func isEmpty(): Bool
/*
* 删除指定的键值对
* 参数 key - 键值
* 返回值 Bool - 是否删除
*/
public func remove(key: K): Bool
/*
* 获取当前大小
* 返回值 Int64 - 缓存大小
*/
public func size(): Int64
/*
* 清空数据
*/
public func clear()
/*
* 获取所有键值
* 返回值 EquatableCollection<K> - 键值
*/
public func keys(): EquatableCollection<K>
}
public class MemoryCacheException <: Exception {
/*
* 默认构造
*/
public init()
/*
* 构造
* 参数 msg - 异常信息
*/
public init(msg: String)
/*
* 转换字符串
* 返回值 String - 异常信息字符串
*/
public func toString(): String
}
public class DiskCacheEntry {
/*
* 获取 name 值
* 返回值 String - name 值
*/
public func getName(): String
/*
* 获取 size 值
* 返回值 Int64 - size 值
*/
public func getSize(): Int64
/*
* 转换字符串
* 返回值 String - 转换字符串,格式为 name - size
*/
public func toString(): String
}