koatty_store
Version:
Cache store for koatty.
1,184 lines (1,172 loc) • 29.8 kB
TypeScript
/*!
* @Author: richen
* @Date: 2026-04-24 16:20:23
* @License: BSD (3-Clause)
* @Copyright (c) - <richenlin(at)gmail.com>
* @HomePage: https://koatty.org/
*/
import { Cluster } from 'ioredis';
import { ClusterOptions } from 'ioredis';
import { default as default_2 } from 'ioredis';
import { EventEmitter } from 'events';
import genericPool from 'generic-pool';
import { Redis } from 'ioredis';
import { RedisOptions } from 'ioredis';
/**
*
*
* @export
* @class Store
*/
export declare class CacheStore implements CacheStoreInterface {
client: MemoryStore | RedisStore;
options: StoreOptions;
/**
* Creates an instance of CacheStore.
* @param {StoreOptions} options
* @memberof CacheStore
*/
constructor(options?: StoreOptions);
/**
* 获取单例实例,支持多配置实例管理
* @static
* @param {StoreOptions} [options]
* @param {string} [instanceKey='default'] 实例键名,用于区分不同配置的实例
* @returns {CacheStore}
*/
static getInstance(options?: StoreOptions, instanceKey?: string): CacheStore;
/**
* 生成配置哈希
* @private
* @static
* @param {StoreOptions} options
* @returns {string}
*/
/**
* 清理指定实例
* @static
* @param {string} [instanceKey='default']
*/
static clearInstance(instanceKey?: string): Promise<void>;
/**
* 清理所有实例
* @static
*/
static clearAllInstances(): Promise<void>;
getConnection(): Promise<default_2 | Cluster> | MemoryCache;
close(): Promise<void>;
release(conn: any): Promise<void>;
/**
* 获取底层实现客户端,用于访问特定实现的功能
* 例如:Redis的defineCommand, getCompare等
* @returns {MemoryStore | RedisStore}
*/
getRawClient(): MemoryStore | RedisStore;
/**
* handler for native client
*
* @param {string} name
* @param {any[]} data
* @returns {*}
* @memberof RedisStore
*/
/**
* 字符串获取
* @param name
*/
get(name: string): Promise<string | null>;
/**
* 字符串写入
* @param name
* @param value
* @param timeout
* @returns {Promise}
*/
set(name: string, value: string | number, timeout?: number): Promise<string>;
/**
* 以秒为单位,返回给定 key 的剩余生存时间
* @param name
* @returns {*}
*/
ttl(name: string): Promise<number>;
/**
* 设置key超时属性
* @param name
* @param timeout
*/
expire(name: string, timeout: number): Promise<number>;
/**
*
*
* @param {*} name
* @returns
*/
del(name: string): Promise<number>;
/**
* 判断key是否存在
* @param name
*/
exists(name: string): Promise<number>;
/**
* 自增
* @param name
*/
incr(name: string): Promise<number>;
/**
* 自减
* @param name
* @returns {*}
*/
decr(name: string): Promise<number>;
/**
* 将 key 所储存的值增加增量
* @param name
* @param incr
* @returns {*}
*/
incrby(name: string, increment: number): Promise<number>;
/**
* 将 key 所储存的值减去减量
*
* @param {any} name
* @param {any} decr
*/
decrby(name: string, decrement: number): Promise<number>;
/**
* 哈希写入
* @param name
* @param key
* @param value
* @param timeout
*/
hset(name: string, key: string, value: string | number, timeout?: number): Promise<number>;
/**
* 哈希获取
* @param name
* @param key
* @returns {*}
*/
hget(name: string, key: string): Promise<string | null>;
/**
* 查看哈希表 hashKey 中,给定域 key 是否存在
* @param name
* @param key
* @returns {*}
*/
hexists(name: string, key: string): Promise<number>;
/**
* 哈希删除
* @param name
* @param key
* @returns {*}
*/
hdel(name: string, key: string): Promise<number>;
/**
* 返回哈希表 key 中域的数量
* @param name
* @returns {*}
*/
hlen(name: string): Promise<number>;
/**
* 给哈希表指定key,增加increment
* @param name
* @param key
* @param increment
* @returns {*}
*/
hincrby(name: string, key: string, increment: number): Promise<number>;
/**
* 返回哈希表所有key-value
* @param name
* @returns {*}
*/
hgetall(name: string): Promise<any>;
/**
* 返回哈希表所有key
* @param name
* @returns {*}
*/
hkeys(name: string): Promise<string[]>;
/**
* 返回哈希表所有value
* @param name
* @returns {*}
*/
hvals(name: string): Promise<any[]>;
/**
* 判断列表长度,若不存在则表示为空
* @param name
* @returns {*}
*/
llen(name: string): Promise<number>;
/**
* 将值插入列表表尾
* @param name
* @param value
* @returns {*}
*/
rpush(name: string, value: string | number): Promise<number>;
/**
*
*
* @param {string} name
* @param {(string | number)} value
* @returns {*}
* @memberof RedisStore
*/
lpush(name: string, value: string | number): Promise<number>;
/**
* 将列表表头取出,并去除
* @param name
* @returns {*}
*/
lpop(name: string): Promise<string | null>;
/**
*
*
* @param {string} name
* @returns {*}
* @memberof RedisStore
*/
rpop(name: string): Promise<string | null>;
/**
* 返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定
* @param name
* @param start
* @param stop
* @returns {*}
*/
lrange(name: string, start: number, stop: number): Promise<any[]>;
/**
* 集合新增
* @param name
* @param value
* @param timeout
* @returns {*}
*/
sadd(name: string, value: string | number, timeout?: number): Promise<number>;
/**
* 返回集合的基数(集合中元素的数量)
* @param name
* @returns {*}
*/
scard(name: string): Promise<number>;
/**
* 判断 member 元素是否集合的成员
* @param name
* @param key
* @returns {*}
*/
sismember(name: string, key: string): Promise<number>;
/**
* 返回集合中的所有成员
* @param name
* @returns {*}
*/
smembers(name: string): Promise<any[]>;
/**
* 移除并返回集合中的一个随机元素
* @param name
* @returns {*}
*/
spop(name: string): Promise<any>;
/**
* 移除集合 key 中的一个 member 元素
* @param name
* @param key
* @returns {*}
*/
srem(name: string, key: string): Promise<number>;
/**
* 将 member 元素从 source 集合移动到 destination 集合
* @param source
* @param destination
* @param member
* @returns {*}
*/
smove(source: string, destination: string, member: string): Promise<number>;
/**
* Begin a transaction
* Note: Only supported by RedisStore, will throw error for MemoryStore
* @returns {Promise<void>}
*/
beginTransaction(): Promise<void>;
/**
* Commit a transaction
* Note: Only supported by RedisStore, will throw error for MemoryStore
* @returns {Promise<void>}
*/
commit(): Promise<void>;
/**
* Rollback a transaction
* Note: Only supported by RedisStore, will throw error for MemoryStore
* @returns {Promise<void>}
*/
rollback(): Promise<void>;
}
declare interface CacheStoreInterface {
getConnection(): any;
close(): Promise<void>;
release(conn: any): Promise<void>;
get(name: string): Promise<string | null>;
set(name: string, value: string | number, timeout?: number): Promise<string>;
del(name: string): Promise<number>;
exists(name: string): Promise<number>;
ttl(name: string): Promise<number>;
expire(name: string, timeout: number): Promise<number>;
incr(name: string): Promise<number>;
decr(name: string): Promise<number>;
incrby(name: string, increment: number): Promise<number>;
decrby(name: string, decrement: number): Promise<number>;
hset(name: string, key: string, value: string | number, timeout?: number): Promise<number>;
hget(name: string, key: string): Promise<string | null>;
hdel(name: string, key: string): Promise<number>;
hexists(name: string, key: string): Promise<number>;
hgetall(name: string): Promise<any>;
hkeys(name: string): Promise<string[]>;
hvals(name: string): Promise<any[]>;
hlen(name: string): Promise<number>;
hincrby(name: string, key: string, increment: number): Promise<number>;
lpush(name: string, value: string | number): Promise<number>;
rpush(name: string, value: string | number): Promise<number>;
lpop(name: string): Promise<string | null>;
rpop(name: string): Promise<string | null>;
llen(name: string): Promise<number>;
lrange(name: string, start: number, stop: number): Promise<any[]>;
sadd(name: string, value: string | number, timeout?: number): Promise<number>;
srem(name: string, key: string): Promise<number>;
scard(name: string): Promise<number>;
sismember(name: string, key: string): Promise<number>;
smembers(name: string): Promise<any[]>;
spop(name: string): Promise<any>;
smove(source: string, destination: string, member: string): Promise<number>;
}
declare type CallbackFunction<T = any> = (err: Error | null, result?: T) => void;
declare class MemoryCache extends EventEmitter {
options: MemoryCacheOptions;
currentDBIndex: number;
connected: boolean;
lastSave: number;
multiMode: boolean;
/**
* Creates an instance of MemoryCache.
* @param {MemoryCacheOptions} options
* @memberof MemoryCache
*/
constructor(options: MemoryCacheOptions);
/**
* 创建LRU缓存实例
*/
/**
* 启动TTL检查定时器
*/
/**
* 清理过期键
*/
/**
* 停止TTL检查
*/
/**
* 清理所有资源
* @private
*/
/**
*
*
* @returns {*}
* @memberof MemoryCache
*/
createClient(): this;
/**
*
*
* @returns {*}
* @memberof MemoryCache
*/
quit(): this;
/**
*
*
* @returns {*}
* @memberof MemoryCache
*/
end(): this;
/**
* 获取缓存统计信息
*/
info(): any;
/**
* 估算内存使用量
*/
/**
*
*
* @param {string} message
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
echo(message: string, callback?: CallbackFunction): any;
/**
*
*
* @param {string} message
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
ping(message: string, callback?: CallbackFunction): any;
/**
*
*
* @param {string} password
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
auth(password: string, callback?: CallbackFunction): any;
/**
*
*
* @param {number} dbIndex
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
select(dbIndex: number, callback?: CallbackFunction): any;
get(key: string, callback?: CallbackFunction): any;
/**
* set(key, value, ttl, pttl, notexist, onlyexist, callback)
*
* @param {string} key
* @param {(string | number)} value
* @param {...any[]} params
* @returns {*}
* @memberof MemoryCache
*/
set(key: string, value: string | number, ...params: any[]): any;
/**
*
*
* @param {string} key
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
ttl(key: string, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {number} seconds
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
expire(key: string, seconds: number, callback?: CallbackFunction): any;
/**
*
*
* @param {...any[]} keys
* @returns {*}
* @memberof MemoryCache
*/
del(...keys: any[]): any;
/**
*
*
* @param {...any[]} keys
* @returns {*}
* @memberof MemoryCache
*/
exists(...keys: any[]): any;
/**
*
*
* @param {string} key
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
incr(key: string, callback?: CallbackFunction): Promise<any>;
/**
*
*
* @param {string} key
* @param {number} amount
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
incrby(key: string, amount: number, callback?: CallbackFunction): Promise<any>;
/**
*
*
* @param {string} key
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
decr(key: string, callback?: CallbackFunction): Promise<any>;
/**
*
*
* @param {string} key
* @param {number} amount
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
decrby(key: string, amount: number, callback?: CallbackFunction): Promise<any>;
hset(key: string, field: string, value: string | number, timeout?: number, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {string} field
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
hget(key: string, field: string, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {string} field
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
hexists(key: string, field: string, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {...any[]} fields
* @returns {*}
* @memberof MemoryCache
*/
hdel(key: string, ...fields: any[]): any;
/**
*
*
* @param {string} key
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
hlen(key: string, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {string} field
* @param {*} value
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
hincrby(key: string, field: string, value: any, callback?: CallbackFunction): Promise<any>;
/**
*
*
* @param {string} key
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
hgetall(key: string, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
hkeys(key: string, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
hvals(key: string, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
llen(key: string, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {(string | number)} value
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
rpush(key: string, value: string | number, callback?: CallbackFunction): any;
/**
* List:从左侧推入
* @param key
* @param value
* @param callback
*/
lpush(key: string, value: any, callback?: CallbackFunction): any;
/**
* List:获取指定索引的元素
* @param key
* @param index
* @param callback
*/
lindex(key: string, index: number, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
lpop(key: string, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
rpop(key: string, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {number} start
* @param {number} stop
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
lrange(key: string, start: number, stop: number, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {...any[]} members
* @returns {*}
* @memberof MemoryCache
*/
sadd(key: string, ...members: string[]): any;
/**
*
*
* @param {string} key
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
scard(key: string, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {string} member
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
sismember(key: string, member: string, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
smembers(key: string, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {number} [count]
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
spop(key: string, count?: number, callback?: CallbackFunction): any;
/**
*
*
* @param {string} key
* @param {...any[]} members
* @returns {*}
* @memberof MemoryCache
*/
srem(key: string, ...members: any[]): any;
/**
*
*
* @param {string} sourcekey
* @param {string} destkey
* @param {string} member
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
smove(sourcekey: string, destkey: string, member: string, callback?: CallbackFunction): any;
discard(callback?: CallbackFunction, silent?: boolean): any;
/**
*
*
* @param {string} key
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
/**
*
*
* @private
* @param {string} key
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
/**
*
*
* @private
* @param {string} key
* @returns {*} {boolean}
* @memberof MemoryCache
*/
/**
*
*
* @private
* @param {*} value
* @param {string} type
* @param {number} timeout
* @returns {*}
* @memberof MemoryCache
*/
/**
*
*
* @private
* @param {string} key
* @returns {*}
* @memberof MemoryCache
*/
/**
*
*
* @private
* @param {string} key
* @param {number} amount
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
/**
*
*
* @private
* @param {string} key
* @param {string} type
* @param {boolean} [throwError]
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
/**
*
*
* @private
* @param {string} key
* @returns {*}
* @memberof MemoryCache
*/
/**
*
*
* @private
* @param {string} key
* @param {(number | string)} value
* @memberof MemoryCache
*/
/**
*
*
* @private
* @param {string} key
* @param {string} field
* @param {number} [amount]
* @param {boolean} [useFloat]
* @param {Function} [callback]
* @returns {*}
* @memberof MemoryCache
*/
/**
*
*
* @private
* @param {string} key
* @param {string} field
* @returns {*}
* @memberof MemoryCache
*/
/**
*
*
* @private
* @param {string} key
* @param {string} field
* @returns {*} {boolean}
* @memberof MemoryCache
*/
/**
*
*
* @param {string} key
* @param {string} field
* @param {*} value
* @memberof MemoryCache
*/
_setField(key: string, field: string, value: any): void;
/**
*
*
* @private
* @param {Function} [callback]
* @param {(any)} [message]
* @param {*} [error]
* @param {boolean} [nolog]
* @returns {*}
* @memberof MemoryCache
*/
/**
*
*
* @private
* @param {any[]} [params]
* @returns {*}
* @memberof MemoryCache
*/
/**
* 字符串追加操作
* @param key
* @param value
* @param callback
*/
append(key: string, value: string, callback?: CallbackFunction): any;
/**
* 获取字符串长度
* @param key
* @param callback
*/
strlen(key: string, callback?: CallbackFunction): any;
/**
* 获取子字符串
* @param key
* @param start
* @param end
* @param callback
*/
getrange(key: string, start: number, end: number, callback?: CallbackFunction): any;
/**
* 设置子字符串
* @param key
* @param offset
* @param value
* @param callback
*/
setrange(key: string, offset: number, value: string, callback?: CallbackFunction): any;
/**
* 批量获取
* @param keys
* @param callback
*/
mget(...keys: any[]): any;
/**
* 批量设置
* @param keyValuePairs
* @param callback
*/
mset(...keyValuePairs: any[]): any;
/**
* 获取所有键
* @param pattern
* @param callback
*/
keys(pattern?: string, callback?: CallbackFunction): any;
/**
* 简单的模式匹配
* @param key
* @param pattern
*/
/**
* 获取随机键
* @param callback
*/
randomkey(callback?: CallbackFunction): any;
/**
* 重命名键
* @param oldKey
* @param newKey
* @param callback
*/
rename(oldKey: string, newKey: string, callback?: CallbackFunction): any;
/**
* 安全重命名键(目标键不存在时才重命名)
* @param oldKey
* @param newKey
* @param callback
*/
renamenx(oldKey: string, newKey: string, callback?: CallbackFunction): any;
/**
* 获取键的类型
* @param key
* @param callback
*/
type(key: string, callback?: CallbackFunction): any;
/**
* 清空当前数据库
* @param callback
*/
flushdb(callback?: CallbackFunction): any;
/**
* 清空所有数据库
* @param callback
*/
flushall(callback?: CallbackFunction): any;
/**
* 获取数据库大小
* @param callback
*/
dbsize(callback?: CallbackFunction): any;
/**
* Sorted Set基础实现 - 添加成员
* @param key
* @param score
* @param member
* @param callback
*/
zadd(key: string, score: number, member: string, callback?: CallbackFunction): any;
/**
* Sorted Set - 获取成员分数
* @param key
* @param member
* @param callback
*/
zscore(key: string, member: string, callback?: CallbackFunction): any;
/**
* Sorted Set - 获取范围内的成员
* @param key
* @param start
* @param stop
* @param callback
*/
zrange(key: string, start: number, stop: number, callback?: CallbackFunction): any;
/**
* Sorted Set - 获取成员数量
* @param key
* @param callback
*/
zcard(key: string, callback?: CallbackFunction): any;
/**
* Sorted Set - 删除成员
* @param key
* @param member
* @param callback
*/
zrem(key: string, member: string, callback?: CallbackFunction): any;
}
/**
*
*
* @interface MemoryCacheOptions
*/
declare interface MemoryCacheOptions {
database: number;
maxKeys?: number;
maxMemory?: number;
evictionPolicy?: 'lru' | 'lfu' | 'random';
ttlCheckInterval?: number;
maxAge?: number;
}
declare class MemoryStore {
client: MemoryCache;
options: MemoryStoreOpt;
/**
* Creates an instance of MemoryStore.
* @param {MemoryStoreOpt} options
* @memberof MemoryStore
*/
constructor(options: MemoryStoreOpt);
/**
* getConnection
*
* @returns {*}
* @memberof MemoryStore
*/
getConnection(): MemoryCache;
/**
* close
*
* @returns {*} {Promise<void>}
* @memberof MemoryStore
*/
close(): Promise<void>;
/**
* release
*
* @param {*} _conn
* @returns {*} {Promise<void>}
* @memberof MemoryStore
*/
release(_conn: any): Promise<void>;
/**
* defineCommand
*
* @param {string} _name
* @param {*} _scripts
* @memberof MemoryStore
*/
defineCommand(_name: string, _scripts: any): Promise<void>;
/**
* get and compare value
*
* @param {string} name
* @param {(string | number)} value
* @returns {*} {Promise<any>}
* @memberof MemoryStore
*/
getCompare(name: string, value: string | number): Promise<any>;
/**
* 获取缓存统计信息
*/
getStats(): any;
/**
* Begin a transaction (not supported by MemoryStore)
* @throws {Error} Transactions are not supported by MemoryStore
*/
beginTransaction(): Promise<void>;
/**
* Commit a transaction (not supported by MemoryStore)
* @throws {Error} Transactions are not supported by MemoryStore
*/
commit(): Promise<void>;
/**
* Rollback a transaction (not supported by MemoryStore)
* @throws {Error} Transactions are not supported by MemoryStore
*/
rollback(): Promise<void>;
}
declare interface MemoryStoreOpt {
type: string;
keyPrefix?: string;
db?: number;
timeout?: number;
maxKeys?: number;
maxMemory?: number;
evictionPolicy?: 'lru' | 'lfu' | 'random';
ttlCheckInterval?: number;
}
/**
*
*
* @export
* @class RedisStore
*/
declare class RedisStore {
options: RedisStoreOpt;
pool: genericPool.Pool<Redis | Cluster>;
client: Redis | Cluster;
/**
* Creates an instance of RedisStore.
* @param {RedisStoreOpt} options
* @memberof RedisStore
*/
constructor(options: RedisStoreOpt);
/**
* create connection by native with improved error handling
*
* @param {number} [connNum=0]
* @returns {*} {Promise<Redis | Cluster>}
* @memberof RedisStore
*/
/**
* 计划重连,使用指数退避策略
* @private
* @param {number} connNum
*/
/**
* get connection from pool with improved configuration
*
* @returns {*}
* @memberof RedisStore
*/
getConnection(): Promise<Redis | Cluster>;
/**
* close connection with proper cleanup
*
* @returns {*}
* @memberof RedisStore
*/
close(): Promise<void>;
/**
*
*
* @param {*} conn
* @returns {*}
* @memberof RedisStore
*/
release(conn: any): Promise<void>;
/**
* defineCommand
*
* @param {string} name
* @param {{ numberOfKeys?: number; lua?: string; }} scripts
* @returns {*}
* @memberof RedisStore
*/
defineCommand(name: string, scripts: {
numberOfKeys?: number;
lua?: string;
}): Promise<any>;
/**
* get and compare value
*
* @param {string} name
* @param {(string | number)} value
* @returns {*} {Promise<any>}
* @memberof RedisStore
*/
getCompare(name: string, value: string | number): Promise<any>;
}
/**
* @description:
* @return {*}
*/
declare interface RedisStoreOpt extends RedisOptions, ClusterOptions {
type: string;
timeout?: number;
poolSize?: number;
clusters?: Array<{
host: string;
port: number;
}>;
}
export declare type StoreOptions = MemoryStoreOpt | RedisStoreOpt;
export { }