www/apps/resources/references/cache/interfaces/cache.ICacheService/page.mdx
import { TypeList } from "docs-ui"
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.
:::
In your workflow's step, you can resolve the Cache Module's service from the Medusa container:
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.
This method retrieves data from the cache.
const data = await cacheModuleService.get("my-key")
<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"/>
<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"/>
<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"/>
This method removes an item from the cache.
await cacheModuleService.invalidate("my-key")
<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"/>
<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"/>
This method stores data in the cache.
await cacheModuleService.set("my-key", { product_id: "prod_123" }, 60)
<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"/>
<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"/>