///
///
import events = require("events");
import Redis = require("ioredis");
import { Callback } from "./define";
export interface CacheOptions {
/**
* Redis 连接信息
* {host, port, password, db }
* 参考 https://github.com/luin/ioredis/blob/master/API.md#new_Redis
*/
redis: Redis.RedisOptions;
/**
* 缓存时间,单位:秒
*/
ttl: number;
/**
* Redis Key 前缀
*/
prefix: string;
}
export interface CacheDataItem {
/**
* 缓存Key
*/
key: string;
/**
* 数据
*/
data: string;
}
export declare class Cache extends events.EventEmitter {
private _redis;
private _ttl;
private _prefix;
/**
* 创建 Cache 实例
*/
constructor(options: CacheOptions);
/**
* 获取 redis 实例
*/
readonly redis: Redis.Redis;
/**
* 保存到缓存
* @param list 每个元素为 { key, data }
*/
saveList(list: CacheDataItem[]): Promise;
/**
* 保存到缓存
* @param list 每个元素为 { key, data }
* @param callback 回调函数
*/
saveList(list: CacheDataItem[], callback: Callback): void;
/**
* 保存到缓存
* @param item 数据 { key, data }
*/
saveItem(item: CacheDataItem): Promise;
/**
* 保存到缓存
* @param item 数据 { key, data }
* @param callback 回调函数
*/
saveItem(item: CacheDataItem, callback: Callback): void;
/**
* 查询缓存
* @param keys key 数组
*/
getList(keys: string[]): Promise;
/**
* 查询缓存
* @param keys key 数组
* @param callback 回调函数
*/
getList(keys: string[], callback: Callback): void;
/**
* 查询缓存
* @param key
*/
getItem(key: string): Promise;
/**
* 查询缓存
* @param key
* @param callback 回调函数
*/
getItem(key: string, callback: Callback): void;
/**
* 从缓存中缓存
* @param keys
*/
removeList(list: string[]): Promise;
/**
* 从缓存中缓存
* @param keys
* @param callback 回调函数
*/
removeList(list: string[], callback: Callback): void;
/**
* 删除缓存
* @param key
*/
removeItem(key: string): Promise;
/**
* 删除缓存
* @param key
* @param callback 回调函数
*/
removeItem(key: string, callback: Callback): void;
/**
* 查询缓存(key的内容指向另一个key)
* @param key
*/
getPointerItem(key: string): Promise;
/**
* 查询缓存(key的内容指向另一个key)
* @param key
*/
getPointerItem(key: string, callback: Callback): void;
/**
* 关闭连接
*/
close(): Promise;
/**
* 关闭连接
* @param callback 回调函数
*/
close(callback: Callback): void;
/**
* 返回实际的 Key
* @param key 原来的 key
*/
private _getKey(key);
}