Files
next.js/examples/cache-handler-redis
8f0d5834fe examples: replace the all docker-compose.yml with compose.yaml (#71006)
# Summary
Rename docker compose file to `compose.yaml`.
Update docker compose command.

## Description
According to [official
manuals](https://docs.docker.com/compose/intro/compose-application-model/#the-compose-file),

> The default path for a Compose file is `compose.yaml` (preferred) or
`compose.yml` that is placed in the working directory. Compose also
supports `docker-compose.yaml` and `docker-compose.yml` for backwards
compatibility of earlier versions. If both files exist, Compose prefers
the canonical `compose.yaml`.

### Adding or Updating Examples

- [x] The "examples guidelines" are followed from our contributing doc
https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md
- [x] Make sure the linting passes by running `pnpm build && pnpm lint`.
See
https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md

x-ref: [The Compose
file](https://docs.docker.com/compose/intro/compose-application-model/#the-compose-file)
x-ref: [docker-compose vs docker
compose](https://docs.docker.com/compose/releases/migrate/#docker-compose-vs-docker-compose)

Co-authored-by: JJ Kasper <[email protected]>
2024-10-29 15:29:10 -07:00
..

Next.js Redis Cache Integration Example

This example is tailored for self-hosted setups and demonstrates how to use Redis as a shared cache. It is built on the principles of the @neshca/cache-handler package, which replaces the default Next.js cache handler and adds advanced caching features.

Check out this repository that contains a comprehensive setup for Kubernetes.

How to use

Execute create-next-app with npm, Yarn, or pnpm to bootstrap the example:


npx create-next-app --example cache-handler-redis cache-handler-redis-app
yarn create next-app --example cache-handler-redis cache-handler-redis-app
pnpm create next-app --example cache-handler-redis cache-handler-redis-app

Once you have installed the dependencies, you can begin running the example Redis Stack server by using the following command:

docker compose up -d

Then, build and start the Next.js app as usual.

To see the cache logs use NEXT_PRIVATE_DEBUG_CACHE=1 troubleshooting

Documentation

For detailed information on configuration and usage, please refer to our comprehensive Documentation ↗.

Key Features and Considerations

  • Handlers: The @neshca/cache-handler package includes Handlers for seamless integration with Redis.

  • Create Your Own Handlers: Take a look at Custom Redis Handler and use it as a basis to create your own handler.

  • Redis Server Setup: Ensure your Redis server is running and properly configured before starting your Next.js application.

  • Configure Redis Credentials: Update the cache-handler-redis* files with your Redis credentials. Connection details can be found here.

  • Building Without Redis: To build the app without connecting to Redis use conditions inside onCreation callback. Check the documentation for more details.

Development and Production Considerations

  • The provided compose.yaml is intended for local development. For production deployment, refer to the official Redis installation and management guidelines.

  • Clearing Redis Cache: To clear the Redis cache, use RedisInsight Workbench or the following CLI command:

    docker exec -it redis-stack redis-cli
    127.0.0.1:6379> flushall
    OK