Redis.ts
Redis.ts overview
Section titled “Redis.ts overview”Redis support shared by persistence modules.
This module defines a Redis service that can send Redis commands and run
Lua scripts. It does not create a Redis client itself; callers provide a
send function from their client or connection pool. The module also
provides helpers for describing Lua scripts, loading them once, and running
them later by their cached Redis id.
Since v4.0.0
Exports Grouped by Category
Section titled “Exports Grouped by Category”Scripting
Section titled “Scripting”Script (interface)
Section titled “Script (interface)”Typed descriptor for a Redis Lua script.
Details
It defines the Lua source, parameter-to-argument mapping, Redis key count,
and result type used by Redis.eval.
Signature
export interface Script< Config extends { readonly params: ReadonlyArray<unknown> readonly result: unknown }> { readonly [ScriptTypeId]: { readonly params: Config["params"] readonly result: Config["result"] } readonly lua: string readonly params: (...params: Config["params"]) => ReadonlyArray<unknown> readonly numberOfKeys: (...params: Config["params"]) => number
/** * Set the return type of the script. */ withReturnType<Result>(): Script<{ params: Config["params"] result: Result }>}Since v4.0.0
script
Section titled “script”Constructs a typed Redis Lua script descriptor.
Details
The result type defaults to void and can be refined with
withReturnType.
Signature
declare const script: <Params extends ReadonlyArray<any>>( f: (...params: Params) => ReadonlyArray<unknown>, options: { readonly lua: string; readonly numberOfKeys: number | ((...params: Params) => number) }) => Script<{ params: Params; result: void }>Since v4.0.0
constructors
Section titled “constructors”Creates a Redis service from a raw command sender.
Details
Lua scripts are loaded through SCRIPT LOAD, cached, and then invoked with
EVALSHA.
Signature
declare const make: (options: { readonly send: <A = unknown>(command: string, ...args: ReadonlyArray<string>) => Effect.Effect<A, RedisError>}) => Effect.Effect< { readonly send: <A = unknown>(command: string, ...args: ReadonlyArray<string>) => Effect.Effect<A, RedisError> readonly eval: <Config extends { readonly params: ReadonlyArray<unknown>; readonly result: unknown }>( script: Script<Config> ) => (...params: Config["params"]) => Effect.Effect<Config["result"], RedisError> }, never, never>Since v4.0.0
errors
Section titled “errors”RedisError (class)
Section titled “RedisError (class)”Error raised by Redis command or script execution.
Signature
declare class RedisErrorSince v4.0.0
[ErrorTypeId] (property)
Section titled “[ErrorTypeId] (property)”Marks this value as a Redis persistence error for runtime guards.
Signature
readonly [ErrorTypeId]: "~effect/persistence/Redis/RedisError"Since v4.0.0
services
Section titled “services”Redis (class)
Section titled “Redis (class)”Service for sending Redis commands and evaluating cached Lua scripts.
Signature
declare class RedisSince v4.0.0