---
title: CacheLong
description: >-
  The `CacheLong` strategy instructs caches to store data for 1 hour, and
  `staleWhileRevalidate` data for an additional 23 hours. Note: these time
  values are subject to change.


  Learn more about [data fetching in
  Hydrogen](/docs/custom-storefronts/hydrogen/data-fetching/fetch-data).
api_version: 2024-07
api_name: hydrogen
source_url:
  html: 'https://shopify.dev/docs/api/hydrogen/2024-07/utilities/caching/cachelong'
  md: 'https://shopify.dev/docs/api/hydrogen/2024-07/utilities/caching/cachelong.md'
---

# Cache​Long

The `CacheLong` strategy instructs caches to store data for 1 hour, and `staleWhileRevalidate` data for an additional 23 hours. Note: these time values are subject to change.

Learn more about [data fetching in Hydrogen](https://shopify.dev/docs/custom-storefronts/hydrogen/data-fetching/fetch-data).

## cache​Long(**[overrideOptions](#arguments-propertydetail-overrideoptions)**​)

### Parameters

* **overrideOptions**

  **AllCacheOptions**

### Returns

* **AllCacheOptions**

  ### ### AllCacheOptionsOverride options for a cache strategy.

  * **maxAge**

    **number**

    The maximum amount of time in seconds that a resource will be considered fresh. See `max-age` in the [MDN docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#:~:text=Response%20Directives-,max%2Dage,-The%20max%2Dage).

  * **mode**

    **string**

    The caching mode, generally `public`, `private`, or `no-store`.

  * **sMaxAge**

    **number**

    Similar to `maxAge` but specific to shared caches. See `s-maxage` in the [MDN docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#s-maxage).

  * **staleIfError**

    **number**

    Indicate that the cache should serve the stale response if an error occurs while revalidating the cache. See `stale-if-error` in the [MDN docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#stale-if-error).

  * **staleWhileRevalidate**

    **number**

    Indicate that the cache should serve the stale response in the background while revalidating the cache. See `stale-while-revalidate` in the [MDN docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#stale-while-revalidate).

### AllCacheOptions

Override options for a cache strategy.

* maxAge

  The maximum amount of time in seconds that a resource will be considered fresh. See \`max-age\` in the \[MDN docs]\(https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#:\~:text=Response%20Directives-,max%2Dage,-The%20max%2Dage).

  ```ts
  number
  ```

* mode

  The caching mode, generally \`public\`, \`private\`, or \`no-store\`.

  ```ts
  string
  ```

* sMaxAge

  Similar to \`maxAge\` but specific to shared caches. See \`s-maxage\` in the \[MDN docs]\(https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#s-maxage).

  ```ts
  number
  ```

* staleIfError

  Indicate that the cache should serve the stale response if an error occurs while revalidating the cache. See \`stale-if-error\` in the \[MDN docs]\(https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#stale-if-error).

  ```ts
  number
  ```

* staleWhileRevalidate

  Indicate that the cache should serve the stale response in the background while revalidating the cache. See \`stale-while-revalidate\` in the \[MDN docs]\(https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#stale-while-revalidate).

  ```ts
  number
  ```

Examples

### Examples

* #### Example code

  ##### Description

  I am the default example

  ##### JavaScript

  ```js
  import {json} from '@shopify/remix-oxygen';
  import {CacheLong} from '@shopify/hydrogen';

  export async function loader({context}) {
    const data = await context.storefront.query(
      `#grahpql
    {
      shop {
        name
        description
      }
    }`,
      {
        cache: CacheLong(),
      },
    );

    return json(data);
  }
  ```

  ##### TypeScript

  ```ts
  import {json, type LoaderFunctionArgs} from '@shopify/remix-oxygen';
  import {CacheLong} from '@shopify/hydrogen';

  export async function loader({context}: LoaderFunctionArgs) {
    const data = await context.storefront.query(
      `#grahpql
    {
      shop {
        name
        description
      }
    }`,
      {
        cache: CacheLong(),
      },
    );

    return json(data);
  }
  ```

## Related

[- createStorefrontClient](https://shopify.dev/docs/api/hydrogen/2024-07/utilities/createstorefrontclient)

[- CacheNone](https://shopify.dev/docs/api/hydrogen/2024-07/utilities/cachenone)

[- CacheShort](https://shopify.dev/docs/api/hydrogen/2024-07/utilities/cacheshort)

[- CacheCustom](https://shopify.dev/docs/api/hydrogen/2024-07/utilities/cachecustom)
