ts-api-core
Version:
Nodejs api framework core
97 lines (96 loc) • 2.74 kB
TypeScript
import { BaseProvider } from '../../mvc/ioc.decorator';
/** 缓存配置 */
export interface ICacheConfig {
/** redis地址 */
host: string;
/** 端口 */
port: number;
/** 密码 */
password?: string;
/** 用户名 */
username?: string;
}
/**
* Redis 缓存数据通道
*/
export interface ICacheAccess {
config: ICacheConfig;
get: (key: string) => Promise<string>;
set: (key: string, value: string) => Promise<void>;
remove: (key: string) => Promise<void>;
exists: (key: string) => Promise<boolean>;
/** 设置key的有效期 单位秒 */
expire: (key: string, ttl: number) => Promise<boolean>;
getSet: (key: string, value: string) => Promise<string>;
search: (partykey: string) => Promise<string[]>;
setNX: (key: string, value: string) => Promise<boolean>;
}
/**
* Redis 缓存数据通道
*/
export declare class CacheAccess extends BaseProvider implements ICacheAccess {
onFree(): void;
/**
* redis连接信息
*/
config: ICacheConfig;
private _redis;
private _client?;
private get redis();
/**
* 获取一个redis客户端
*/
private getRedis;
/** 初始化客户端, 允许不初始化, 每次临时生成 */
initClient(): void;
/** 关闭客户端 */
quitClient(): void;
private execute;
/**
* redis.get
* @param key 缓存的key
*/
get(key: string): Promise<string>;
/**
* redis.set
* @param key 缓存的key
* @param value 缓存的值
* @param expire (可选) 缓存有效期 单位秒
*/
set(key: string, value: string, expire?: number): Promise<void>;
/**
* redis.del 删除
* @param key 需要删除的key
*/
remove(key: string | string[]): Promise<void>;
/**
* 检查key是否存在
* @param key
*/
exists(key: string): Promise<boolean>;
/**
* 设置key的有效期 单位秒
* @param key
* @param ttl 有效期 单位秒
*/
expire(key: string, ttl: number): Promise<boolean>;
/**
* Set the string value of a key and return its old value.
* if old value not exists,return nil
* @param key
* @param value new value
*/
getSet(key: string, value: string): Promise<string>;
/**
* 查找key
* @param partykey
*/
search(partykey: string): Promise<string[]>;
/**
* Set the value of a key, only if the key does not exist.
* 设置成功,返回 1 。 设置失败,返回 0 。
* @param key
* @param value
*/
setNX(key: string, value: string): Promise<boolean>;
}