Back to Medusa

How to Use Cache Module

www/apps/resources/references/cache/interfaces/cache.ICacheService/page.mdx

2.14.24.4 KB
Original Source

import { TypeList } from "docs-ui"

How to Use Cache Module

In this document, you’ll learn about the different methods in the Cache Module's service and how to use them.

:::note[Deprecation Notice]

The Cache Module is deprecated starting from Medusa v2.11.0. Use the Caching Module instead.

:::


Resolve Cache Module's Service

In your workflow's step, you can resolve the Cache Module's service from the Medusa container:

ts
import { Modules } from "@medusajs/framework/utils"
import { createStep } from "@medusajs/framework/workflows-sdk"

const step1 = createStep(
  "step-1",
  async ({}, { container }) => {
    const cacheModuleService = container.resolve(
      Modules.CACHE
    )
    
    // TODO use cacheModuleService
  } 
)

This will resolve the service of the configured Cache Module, which is the In-Memory Cache Module by default.

You can then use the Cache Module's service's methods in the step. The rest of this guide details these methods.


get

This method retrieves data from the cache.

Example

ts
const data = await cacheModuleService.get("my-key")

Type Parameters

<TypeList types={[{"name":"T","type":"object","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]} expandUrl="https://docs.medusajs.com/learn/fundamentals/data-models/manage-relationships#retrieve-records-of-relation" sectionTitle="get"/>

Parameters

<TypeList types={[{"name":"key","type":"string","description":"The key of the item to retrieve.","optional":false,"defaultValue":"","expandable":false,"children":[]}]} expandUrl="https://docs.medusajs.com/learn/fundamentals/data-models/manage-relationships#retrieve-records-of-relation" sectionTitle="get"/>

Returns

<TypeList types={[{"name":"Promise","type":"Promise<null \| T>","optional":false,"defaultValue":"","description":"The item that was stored in the cache. If the item was not found, null is returned.","expandable":false,"children":[{"name":"null \| T","type":"null \| T","optional":false,"defaultValue":"","description":"","expandable":false,"children":[]}]}]} expandUrl="https://docs.medusajs.com/learn/fundamentals/data-models/manage-relationships#retrieve-records-of-relation" sectionTitle="get"/>


invalidate

This method removes an item from the cache.

Example

ts
await cacheModuleService.invalidate("my-key")

Parameters

<TypeList types={[{"name":"key","type":"string","description":"The key of the item to remove.","optional":false,"defaultValue":"","expandable":false,"children":[]}]} expandUrl="https://docs.medusajs.com/learn/fundamentals/data-models/manage-relationships#retrieve-records-of-relation" sectionTitle="invalidate"/>

Returns

<TypeList types={[{"name":"Promise","type":"Promise<void>","optional":false,"defaultValue":"","description":"This method removes an item from the cache.","expandable":false,"children":[]}]} expandUrl="https://docs.medusajs.com/learn/fundamentals/data-models/manage-relationships#retrieve-records-of-relation" sectionTitle="invalidate"/>


set

This method stores data in the cache.

Example

ts
await cacheModuleService.set("my-key", { product_id: "prod_123" }, 60)

Parameters

<TypeList types={[{"name":"key","type":"string","description":"The key of the item to store.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"data","type":"unknown","description":"The data to store in the cache.","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"ttl","type":"number","description":"The time-to-live (TTL) value in seconds. If not provided, the default TTL value is used. The default value is based on the used Cache Module.","optional":true,"defaultValue":"","expandable":false,"children":[]}]} expandUrl="https://docs.medusajs.com/learn/fundamentals/data-models/manage-relationships#retrieve-records-of-relation" sectionTitle="set"/>

Returns

<TypeList types={[{"name":"Promise","type":"Promise<void>","optional":false,"defaultValue":"","description":"This method stores data in the cache.","expandable":false,"children":[]}]} expandUrl="https://docs.medusajs.com/learn/fundamentals/data-models/manage-relationships#retrieve-records-of-relation" sectionTitle="set"/>