@trieb.work/nextjs-turbo-redis-cache
Version:
The ultimate Redis caching solution for Next.js. Built for production-ready, large-scale projects, it delivers unparalleled performance and efficiency with features tailored for high-traffic applications.
25 lines (23 loc) • 1.12 kB
text/typescript
import { CacheHandler } from "next/dist/server/lib/incremental-cache";
import RedisStringsHandler, { CreateRedisStringsHandlerOptions } from "./RedisStringsHandler";
let cachedHandler: RedisStringsHandler;
export default class CachedHandler implements CacheHandler {
constructor(options: CreateRedisStringsHandlerOptions) {
if (!cachedHandler) {
console.log("created cached handler");
cachedHandler = new RedisStringsHandler(options);
}
}
get(...args: Parameters<RedisStringsHandler["get"]>): ReturnType<RedisStringsHandler["get"]> {
return cachedHandler.get(...args);
}
set(...args: Parameters<RedisStringsHandler["set"]>): ReturnType<RedisStringsHandler["set"]> {
return cachedHandler.set(...args);
}
revalidateTag(...args: Parameters<RedisStringsHandler["revalidateTag"]>): ReturnType<RedisStringsHandler["revalidateTag"]> {
return cachedHandler.revalidateTag(...args);
}
resetRequestCache(...args: Parameters<RedisStringsHandler["resetRequestCache"]>): ReturnType<RedisStringsHandler["resetRequestCache"]> {
return cachedHandler.resetRequestCache(...args);
}
}