178 lines
3.3 KiB
Plaintext
178 lines
3.3 KiB
Plaintext
import { Table, Prerequisites } from "docs-ui"
|
||
|
||
export const metadata = {
|
||
title: `Redis Cache Module`,
|
||
}
|
||
|
||
# {metadata.title}
|
||
|
||
The Redis Cache Module uses Redis to cache data in your store. In production, it's recommended to use this module.
|
||
|
||
<Note title="Using Cloud?">
|
||
|
||
Our Cloud offering automatically provisions a Redis instance and configures the Redis Cache Module for you. Learn more in the [Redis](!cloud!/redis) Cloud documentation.
|
||
|
||
</Note>
|
||
|
||
---
|
||
|
||
## Register the Redis Cache Module
|
||
|
||
<Prerequisites items={[
|
||
{
|
||
text: "Redis installed and Redis server running",
|
||
link: "https://redis.io/docs/getting-started/installation/"
|
||
}
|
||
]} />
|
||
|
||
Add the module into the `modules` property of the exported object in `medusa-config.ts`:
|
||
|
||
export const highlights = [
|
||
["11", "redisUrl", "The Redis connection URL."]
|
||
]
|
||
|
||
```ts title="medusa-config.ts" highlights={highlights}
|
||
import { Modules } from "@medusajs/framework/utils"
|
||
|
||
// ...
|
||
|
||
module.exports = defineConfig({
|
||
// ...
|
||
modules: [
|
||
{
|
||
resolve: "@medusajs/medusa/cache-redis",
|
||
options: {
|
||
redisUrl: process.env.CACHE_REDIS_URL,
|
||
},
|
||
},
|
||
],
|
||
})
|
||
```
|
||
|
||
### Environment Variables
|
||
|
||
Make sure to add the following environment variables:
|
||
|
||
```bash
|
||
CACHE_REDIS_URL=<YOUR_REDIS_URL>
|
||
```
|
||
|
||
### Redis Cache Module Options
|
||
|
||
<Table>
|
||
<Table.Header>
|
||
<Table.Row>
|
||
<Table.HeaderCell>Option</Table.HeaderCell>
|
||
<Table.HeaderCell>Description</Table.HeaderCell>
|
||
<Table.HeaderCell>Required</Table.HeaderCell>
|
||
<Table.HeaderCell>Default</Table.HeaderCell>
|
||
</Table.Row>
|
||
</Table.Header>
|
||
<Table.Body>
|
||
<Table.Row>
|
||
<Table.Cell>
|
||
|
||
`redisUrl`
|
||
|
||
</Table.Cell>
|
||
<Table.Cell>
|
||
|
||
A string indicating the Redis connection URL.
|
||
|
||
</Table.Cell>
|
||
<Table.Cell>
|
||
|
||
Yes
|
||
|
||
</Table.Cell>
|
||
<Table.Cell>
|
||
|
||
\-
|
||
|
||
</Table.Cell>
|
||
</Table.Row>
|
||
<Table.Row>
|
||
<Table.Cell>
|
||
|
||
`redisOptions`
|
||
|
||
</Table.Cell>
|
||
<Table.Cell>
|
||
|
||
An object of Redis options. Refer to the [Redis API Reference](https://redis.github.io/ioredis/index.html#RedisOptions) for details on accepted properties.
|
||
|
||
</Table.Cell>
|
||
<Table.Cell>
|
||
|
||
No
|
||
|
||
</Table.Cell>
|
||
<Table.Cell>
|
||
|
||
\-
|
||
|
||
</Table.Cell>
|
||
</Table.Row>
|
||
<Table.Row>
|
||
<Table.Cell>
|
||
|
||
`ttl`
|
||
|
||
</Table.Cell>
|
||
<Table.Cell>
|
||
|
||
The number of seconds an item can live in the cache before it’s removed.
|
||
|
||
</Table.Cell>
|
||
<Table.Cell>
|
||
|
||
No
|
||
|
||
</Table.Cell>
|
||
<Table.Cell>
|
||
|
||
`30` seconds
|
||
|
||
</Table.Cell>
|
||
</Table.Row>
|
||
<Table.Row>
|
||
<Table.Cell>
|
||
|
||
`namespace`
|
||
|
||
</Table.Cell>
|
||
<Table.Cell>
|
||
|
||
A string used to prefix all cached keys with `{namespace}:`.
|
||
|
||
</Table.Cell>
|
||
<Table.Cell>
|
||
|
||
No
|
||
|
||
</Table.Cell>
|
||
<Table.Cell>
|
||
|
||
`medusa`. So, all cached keys are prefixed with `medusa:`.
|
||
|
||
</Table.Cell>
|
||
</Table.Row>
|
||
</Table.Body>
|
||
</Table>
|
||
|
||
---
|
||
|
||
## Test the Module
|
||
|
||
To test the module, start the Medusa application:
|
||
|
||
```bash npm2yarn
|
||
npm run dev
|
||
```
|
||
|
||
You'll see the following message in the terminal's logs:
|
||
|
||
```bash noCopy noReport
|
||
Connection to Redis in module 'cache-redis' established
|
||
```
|