// src/storage/adapters/memory-storage.adapter.ts
interface MemorySession {
id: string;
data: Record<string, any>;
createdAt: number;
ttl: number;
}
{
"adapter": "memory",
"ttl": 1800
}
// src/storage/adapters/redis-storage.adapter.ts
interface RedisSession {
id: string;
data: string; // JSON stringified
expiresAt: number;
}
{
"adapter": "redis",
"host": "localhost",
"port": 6379,
"ttl": 3600
}
// src/storage/adapters/mongodb-storage.adapter.ts
interface MongoSession {
_id: string;
data: object;
expiresAt: Date;
}
{
"adapter": "mongodb",
"uri": "mongodb://localhost:27017",
"dbName": "sessions",
"ttl": 86400
}
barChart
title Requests Per Second
x-axis Adapter
y-axis RPS
bar Memory: 12000
bar Redis: 9500
bar MongoDB: 3500
Implement StorageAdapterInterface:
export interface StorageAdapterInterface {
get(id: string): Promise<SessionData>;
set(id: string, data: SessionData, ttl: number): Promise<void>;
delete(id: string): Promise<void>;
clear(): Promise<void>;
}
Register in storage-factory.ts:
```typescript
StorageFactory.register(‘custom’, CustomAdapter);