Skip to main content

@rtorcato/api-rate-limit-redis v0.2.0

Interfaces

RedisRateLimitClient

Defined in: index.ts:8

Minimal structural view of the Redis client methods this store calls. Matches ioredis (positional eval/scan) — pass an ioredis instance directly. Typed structurally so this package doesn't depend on ioredis types.

Methods

eval()

eval(script, numkeys, ...args): Promise<unknown>

Defined in: index.ts:9

Parameters
script

string

numkeys

number

args

...(string | number)[]

Returns

Promise<unknown>

scan()

scan(cursor, ...args): Promise<[string, string[]]>

Defined in: index.ts:10

Parameters
cursor

string | number

args

...(string | number)[]

Returns

Promise<[string, string[]]>

del()

del(...keys): Promise<number>

Defined in: index.ts:11

Parameters
keys

...string[]

Returns

Promise<number>


RedisStoreOptions

Defined in: index.ts:14

Properties

prefix?

optional prefix?: string

Defined in: index.ts:16

Key prefix so limiter keys don't collide with other Redis data.

Functions

redisStore()

redisStore(client, __namedParameters?): RateLimitStore

Defined in: index.ts:48

Redis-backed sliding-window store — counts are shared across every instance pointing at the same Redis, so the configured limit holds no matter how many replicas run.

import Redis from 'ioredis'
const store = redisStore(new Redis(process.env.REDIS_URL))
const limiter = createRateLimiter({ requests: 100, windowMs: 60_000, store })

Parameters

client

RedisRateLimitClient

__namedParameters?

RedisStoreOptions = {}

Returns

RateLimitStore