@63pokupki/nodejs-common
Version:
Common nodejs functionality
101 lines (100 loc) • 3.03 kB
TypeScript
import redis from 'ioredis';
import { Knex } from 'knex';
interface OneConnectI {
urlDbMaster: string;
urlDbScan: string;
}
interface OneDbConnectI {
redisMaster: redis.Redis;
redisScan: redis.Redis;
}
interface ConnectI {
env?: string;
urlDbMaster?: string;
urlDbScan?: string;
connect?: Record<string, OneConnectI[]>;
sphinxDb?: Knex.Config;
sphinxIndex?: string;
}
/** Обертка над редисом которая понимает async/await */
export declare class RedisSys {
env: string;
ixRedisDb: Record<number, OneDbConnectI>;
ixRedisDbError: Record<number, OneDbConnectI>;
ixRedisDbCommon: Record<number, OneDbConnectI>;
ixRedisDbCommonError: Record<number, OneDbConnectI>;
sphinxDb?: Knex;
sphinxIndex?: string;
ipSrv: string;
ipConnectUse: string;
asIpRedis: string[];
redisMaster: redis.Redis;
redisScan: redis.Redis;
/** Проверка БД редиса */
private checkRedisDb;
/** Интервал проверки актуальности соединения REDIS */
private intervalRedis;
/** Обработка БД с ошибками */
workErrorDb(dbRedis: redis.Redis): void;
/** init */
constructor(param: ConnectI);
/**
* Получить значение из редиса
* @param key
*/
get(key: string): Promise<string>;
/**
* Получить ключи по шаблону - медленный способ
* @param sKeyPattern
*/
keys(sKeyPattern: string): Promise<string[]>;
/**
* Получить ключи по шаблону сканированием
* @param keys
*/
scan(sKeyPattern: string): Promise<string[]>;
/**
* Получить количество ключей базы данных
* @param keys
*/
dbsize(): Promise<number>;
/**
* Поместить значение в редис
* @param key
* @param val
* @param time
*/
set(key: string, val: string | number, time?: number): Promise<string>;
/**
* Найти и удалить ключи по шаблону
* @param sMatch
* @param iCount
*/
clear(sMatch: string): Promise<string[]>;
/**
* Удалить ключи по ID
* @param keys
*/
del(keys: any[]): Promise<any>;
/**
* Получить значение из редиса
* @param sKey
*/
private getFromSphinx;
/**
* Получить ключи по шаблону сканированием
* @param keys
*/
scanFromSphinx(sKey: string): Promise<string[]>;
/**
* Поместить значение в редис
* @param sKey
* @param val
* @param time
*/
setInSphinx(sKey: string): Promise<string>;
clearKeyForMatch(sKey: string): string;
/** Ждет выполнения запросов и закрывает соединение */
quit(): void;
}
export {};