Skip to main content
Version: 1.x

MemoryRateLimitStorage

MemoryRateLimitStorage

In-memory storage used for tests and local usage.

Signature
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[]>;
}

get

method
(key: string) => Promise<T | null>

Read a value from the in-memory key/value store.

set

method
(key: string, value: T, ttlMs?: number) => Promise<void>

Store a value in memory with optional TTL.

delete

method
(key: string) => Promise<void>

Delete a key from the in-memory store.

incr

method
(key: string, ttlMs: number) => Promise<FixedWindowConsumeResult>

Increment a fixed-window counter with TTL handling.

ttl

method
(key: string) => Promise<number | null>

Read the TTL for a key when present.

expire

method
(key: string, ttlMs: number) => Promise<void>

Update the TTL for an existing key.

zAdd

method
(key: string, score: number, member: string) => Promise<void>

Add a member to a sorted set with the given score.

zRemRangeByScore

method
(key: string, min: number, max: number) => Promise<void>

Remove sorted-set members with scores in the given range.

zCard

method
(key: string) => Promise<number>

Count members in a sorted set.

zRangeByScore

method
(key: string, min: number, max: number) => Promise<string[]>

Read sorted-set members in a score range.

consumeFixedWindow

method
(key: string, _limit: number, windowMs: number, _nowMs: number) => Promise<FixedWindowConsumeResult>

Atomically consume a fixed-window counter for the key.

consumeSlidingWindowLog

method
(key: string, limit: number, windowMs: number, nowMs: number, member: string) => Promise<SlidingWindowConsumeResult>

Atomically consume a sliding-window log for the key.

deleteByPrefix

method
(prefix: string) => Promise<void>

Delete keys with the given prefix.

deleteByPattern

method
(pattern: string) => Promise<void>

Delete keys matching a glob pattern.

keysByPrefix

method
(prefix: string) => Promise<string[]>

List keys that match a prefix.