MemoryRateLimitStorage
MemoryRateLimitStorage
In-memory storage used for tests and local usage.
class MemoryRateLimitStorage implements RateLimitStorage {
get(key: string) => Promise<T | null>;
set(key: string, value: T, ttlMs?: number) => Promise<void>;
delete(key: string) => Promise<void>;
incr(key: string, ttlMs: number) => Promise<FixedWindowConsumeResult>;
ttl(key: string) => Promise<number | null>;
expire(key: string, ttlMs: number) => Promise<void>;
zAdd(key: string, score: number, member: string) => Promise<void>;
zRemRangeByScore(key: string, min: number, max: number) => Promise<void>;
zCard(key: string) => Promise<number>;
zRangeByScore(key: string, min: number, max: number) => Promise<string[]>;
consumeFixedWindow(key: string, _limit: number, windowMs: number, _nowMs: number) => Promise<FixedWindowConsumeResult>;
consumeSlidingWindowLog(key: string, limit: number, windowMs: number, nowMs: number, member: string) => Promise<SlidingWindowConsumeResult>;
deleteByPrefix(prefix: string) => Promise<void>;
deleteByPattern(pattern: string) => Promise<void>;
keysByPrefix(prefix: string) => Promise<string[]>;
}
- Implements:
RateLimitStorage
get
(key: string) => Promise<T | null>Read a value from the in-memory key/value store.
set
(key: string, value: T, ttlMs?: number) => Promise<void>Store a value in memory with optional TTL.
delete
(key: string) => Promise<void>Delete a key from the in-memory store.
incr
(key: string, ttlMs: number) => Promise<FixedWindowConsumeResult>Increment a fixed-window counter with TTL handling.
ttl
(key: string) => Promise<number | null>Read the TTL for a key when present.
expire
(key: string, ttlMs: number) => Promise<void>Update the TTL for an existing key.
zAdd
(key: string, score: number, member: string) => Promise<void>Add a member to a sorted set with the given score.
zRemRangeByScore
(key: string, min: number, max: number) => Promise<void>Remove sorted-set members with scores in the given range.
zCard
(key: string) => Promise<number>Count members in a sorted set.
zRangeByScore
(key: string, min: number, max: number) => Promise<string[]>Read sorted-set members in a score range.
consumeFixedWindow
(key: string, _limit: number, windowMs: number, _nowMs: number) => Promise<FixedWindowConsumeResult>Atomically consume a fixed-window counter for the key.
consumeSlidingWindowLog
(key: string, limit: number, windowMs: number, nowMs: number, member: string) => Promise<SlidingWindowConsumeResult>Atomically consume a sliding-window log for the key.
deleteByPrefix
(prefix: string) => Promise<void>Delete keys with the given prefix.
deleteByPattern
(pattern: string) => Promise<void>Delete keys matching a glob pattern.
keysByPrefix
(prefix: string) => Promise<string[]>List keys that match a prefix.