Support to control cache behaviour for NextJS applications.
npm install @dbbs/next-cache-handler-core@dbbs/next-cache-handler-core is designed to elevate the performance of Next.js applications by providing a robust caching solution that adapts to cookies, query parameters, and device types. This enables the delivery of content that is finely tuned to the context of each user, significantly improving load times and user experience.bash
npm i @dbbs/next-cache-handler-core
or
yarn add @dbbs/next-cache-handler-core
`$3
Create a cacheHandler.js in your project and configure as follows:
`javascript
import { Cache, FileSystemCache } from '@dbbs/next-cache-handler-core'Cache
.setCacheStrategy(new FileSystemCache())
.addCookies(['my-cookie-1','my-cookie-2'])
.addQueries(['my-query-1','my-query-2'])
.addDeviceSplit()
// Additional configuration...
export default Cache
`Update your
next.config.js to use the cache handler.`
const nextConfig = {
cacheHandler: require.resolve('./cacheHandler.js')
}export default nextConfig
`Cache Strategies
Explore various caching strategies to find the best fit for your application's needs:
- MemoryCache: Ideal for short-lived data in applications with limited cache size requirements. By default limit of size is set to 512MB.
`
import { Cache, MemoryCache } from '@dbbs/next-cache-handler-core'Cache.setCacheStrategy(new MemoryCache())
`
`
import { Cache, MemoryCache } from '@dbbs/next-cache-handler-core'// extending size limitation to 1024MB.
Cache.addStrategy(new MemoryCache({ sizeLimit: 1024 }))
`
- FileSystemCache: Suitable for persistent caching across application restarts.
`
import { Cache, FileSystemCache } from '@dbbs/next-cache-handler-core'Cache.setCacheStrategy(new FileSystemCache())
`
- Redis: Perfect for distributed applications requiring shared cache access.
`
import { Cache } from '@dbbs/next-cache-handler-core'
import { RedisCache } from '@dbbs/next-cache-handler-redis'// list of all accepted redis connection options.
const redisConnectionOpts = {
url: 'redis://localhost:5843',
...
}
Cache.setCacheStrategy(new RedisCache(redisConnectionOpts))
`
- S3: Suitable for high scalable applications.
`
import { Cache } from '@dbbs/next-cache-handler-core'
import { S3Cache } from '@dbbs/next-cache-handler-s3'Cache.setCacheStrategy(new S3Cache('cache-bucket-name'))
`API Reference
$3
Cookie names what is going to be used to fragmentate cache based on browser cookies session.
`
Cache.addCookies(['my-cookie-to-split'])
`$3
Query names to fragmentate cache based on url query parameters.
`
Cache.addQueries(['my-query-to-split'])
`$3
Enables to fragmentate experience based on current User-Agent of the request.
`
Cache.addDeviceSplit()
`$3
Applies given strategy to cache page data.
`
Cache.setCacheStrategy(new MemoryCache())
`$3
Add route to ignore cache list. All routes added here would be excluded from caching and will always render again.
`
Cache.addNoCacheRoute('/home')
`Logging
Leverage the built-in logger for monitoring cache operations or integrate your custom logger for advanced logging capabilities.
`
import { BaseLogger, Cache, FileSystemCache } from '@dbbs/next-cache-handler-core'class MyCustomLogger implements BaseLogger {
constructor() {}
info(data) {
console.log(data)
}
error(data) {
console.error(data)
}
}
Cache.setCacheStrategy(new FileSystemCache).setLogger(new MyCustomLogger())
``- General Inquiries and Support: For any general questions about the platform or if you need assistance, please visit our website DBB Software and use the contact form provided.
- GitHub Issues: For specific issues, feature requests, or bugs related to the platform, please use the GitHub Issues page. This is the fastest way to directly communicate with our development team and track the resolution of your issue.
- Community Discussion and Contributions: Join our community discussions on GitHub Discussions for broader topics, ideas exchange, and collaborative discussions.
- Social Media: Follow us on our social media channels for the latest news, updates, and insights:
- DBB Software on LinkedIn
- DBB Software on Twitter
- Email Contact: For more formal or detailed inquiries, feel free to reach out to us via email at in@dbbsoftware.com.
We're always here to help and are committed to ensuring you have the best experience with the next-cache-handler. Your input and participation drive the continuous improvement of our platform.