@medusajs/locking-redis
v2.22.1
Published
Redis Lock for Medusa
Readme
Redis Locking Module Provider for Medusa: implements the Locking Module's locks in Redis, so locks are shared across all Medusa instances. It's the recommended locking provider for production. It ships with @medusajs/medusa and is registered through the @medusajs/medusa/locking-redis path.
At a glance
| | |
| --- | --- |
| Package | @medusajs/locking-redis |
| Type | Module Provider (Locking Module) |
| Provider ID | locking-redis |
| Registered by default | No (on Medusa Cloud, registered as the default when REDIS_URL is set) |
| Import from | @medusajs/medusa/locking-redis |
Installation
No installation needed. The provider is a dependency of @medusajs/medusa. You need a running Redis server.
Usage
Register the provider in the Locking Module's providers array in medusa-config.ts:
import { defineConfig } from "@medusajs/framework/utils"
module.exports = defineConfig({
// ...
modules: [
{
resolve: "@medusajs/medusa/locking",
options: {
providers: [
{
resolve: "@medusajs/medusa/locking-redis",
id: "locking-redis",
// makes this the default locking provider
is_default: true,
options: {
redisUrl: process.env.LOCKING_REDIS_URL,
},
},
],
},
},
],
})Configuration
| Option | Type | Description | Default |
| --- | --- | --- | --- |
| redisUrl | string | Required. The Redis connection URL. | - |
| redisOptions | RedisOptions | Options passed to the ioredis client. | - |
| namespace | string | Prefix for lock keys. | "medusa_lock:" |
| waitLockingTimeout | number | Default time to wait to acquire a lock, in seconds. | 5 |
| defaultRetryInterval | number | Initial interval between lock attempts, in milliseconds. | 20 |
| maximumRetryInterval | number | Maximum interval between lock attempts, in milliseconds. | 1000 |
| backoffFactor | number | Multiplier applied to the retry interval after each attempt. | 2 |
| Environment variable | Description |
| --- | --- |
| LOCKING_REDIS_URL | Value for redisUrl, as used in the example above. |
| REDIS_URL | On Medusa Cloud, defineConfig registers this provider as the default with this URL. |
