@yihuangdb/storage-object
Version:
A Node.js storage object layer library using Redis OM
63 lines • 1.72 kB
TypeScript
/**
* Redis OM Pattern Scanner
* Finds and manages all keys created by Redis OM for a schema
*/
import { RedisClientType } from 'redis';
export interface ScanResult {
patterns: Map<string, string[]>;
totalKeys: number;
breakdown: Record<string, number>;
}
export interface DeleteResult {
deleted: number;
patterns: string[];
errors: string[];
}
export interface KeyStats {
total: number;
byType: Record<string, number>;
memoryUsage?: number;
}
export declare class RedisOMPatternScanner {
private entityName;
private client;
private readonly REDIS_OM_PATTERNS;
constructor(entityName: string, client: RedisClientType);
/**
* Get all patterns for this entity
*/
private getPatterns;
/**
* Get keys matching a pattern from registry
*/
private scanPattern;
/**
* Find all keys for this schema
*/
findAllSchemaKeys(): Promise<ScanResult>;
/**
* Delete all keys for this schema
*/
deleteAllSchemaKeys(): Promise<DeleteResult>;
/**
* Get statistics about keys
*/
getKeyStats(): Promise<KeyStats>;
/**
* Find orphaned keys (keys that don't match expected patterns)
*/
findOrphanedKeys(): Promise<string[]>;
/**
* Clean up orphaned keys
*/
cleanupOrphans(): Promise<number>;
}
/**
* Utility to monitor all schemas
*/
export declare function monitorAllSchemas(schemas: string[], client: RedisClientType): Promise<Record<string, KeyStats>>;
/**
* Clean up all schemas
*/
export declare function cleanupAllSchemas(schemas: string[], client: RedisClientType): Promise<Record<string, DeleteResult>>;
//# sourceMappingURL=redis-om-scanner.d.ts.map