10599a4e1e
### What? I copied the contents of `cache-handler.js` and tried it, and got an error `"Socket already opened"`. ref: https://github.com/caching-tools/next-shared-cache/issues/284 It should be fixed so that it doesn't matter if it is copied. ### Why? Because `Socket already opened`, so a condition is needed before `await client.connect()`. ### How? Add environment variable(`process.env.REDIS_AVAILABLE`) check. ref: https://caching-tools.github.io/next-shared-cache/configuration/opt-out-cache-on-build Co-authored-by: akfm.sato <01047245@CF0286.local> |
||
---|---|---|
.. | ||
app | ||
public | ||
.gitignore | ||
cache-handler.js | ||
docker-compose.yml | ||
next.config.js | ||
package.json | ||
README.md | ||
tsconfig.json |
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.
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
docker-compose.yml
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