adv-web-scraper-api

Session Storage Adapters

Available Adapters

Memory Adapter

// src/storage/adapters/memory-storage.adapter.ts
interface MemorySession {
  id: string;
  data: Record<string, any>;
  createdAt: number;
  ttl: number;
}

Redis Adapter

// src/storage/adapters/redis-storage.adapter.ts
interface RedisSession {
  id: string;
  data: string; // JSON stringified
  expiresAt: number;
}

MongoDB Adapter

// src/storage/adapters/mongodb-storage.adapter.ts
interface MongoSession {
  _id: string;
  data: object;
  expiresAt: Date;
}

Performance Comparison

barChart
    title Requests Per Second
    x-axis Adapter
    y-axis RPS
    bar Memory: 12000
    bar Redis: 9500
    bar MongoDB: 3500

Choosing an Adapter

  1. Development: Use memory for simplicity
  2. Production: Redis for most use cases
  3. Complex Data: MongoDB when you need querying

Custom Adapters

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);