simple-adonis-cache
v0.4.1
Published
A simple cache mechanism for AdonisJs
Downloads
4
Maintainers
Readme
Simple Adonis Cache
A simple cache mechanism for AdonisJs.
Installation
adonis install simple-adonis-cache
After installation, you need to register the providers inside start/app.js
file.
// start/app.js
const providers = [
...,
'adonis-cache/providers/CacheProvider'
]
Configuration
The cache configuration is located at config/cache.js
.
// config/cache.js
module.exports = {
// Indicates cache must be enabled or not
enabled: true,
// Indicates where objects should reside on
driver: 'memory',
// Indicates prefix for keys
prefix: 'cache:'
}
API Reference
Cache.remember(key, expire, value)
This function store value
in key
for expire
seconds and return value
.
key
: must beString
indicating thekey
expire
: must beNumber
indicating expiration timevalue
: can be anything such asFunction
,String
,Number
, etc.
Example code:
const Cache = use('Cache')
const User = use('App/Models/User')
class UserController {
async index(request, response) {
// retrieve users from database and cache them for 60 seconds.
const users = await Cache.rememebr('users', 60, () => {
return User.all()
})
// retrieve tags and cache them for 1 hour.
const tags = await Cache.rememebr('users', 60 * 60, () => {
return ['goods', 'services']
})
// retrieve url and cache it for 1 day.
const url = await Cache.rememebr('users', 24 * 60 * 60, () => {
return 'http://api.example.com'
})
}
}
Cache.forever(key, value)
This function store value
in key
forever and return value
.
key
: must beString
indicating thekey
value
: can be anything such asFunction
,String
,Number
, etc.
Example code:
const Cache = use('Cache')
const User = use('App/Models/User')
class UserController {
async index(request, response) {
// retrieve users from database and cache them forever.
const users = await Cache.forever('users', () => {
return User.all()
})
// retrieve tags and cache them forever.
const tags = await Cache.forever('users', () => {
return ['goods', 'services']
})
// retrieve url and cache it forever.
const url = await Cache.forever('users', () => {
return 'http://api.example.com'
})
}
}
Cache.forget(key)
This function remove specified key
.
key
: must beString
indicating thekey
Example code:
const Cache = use('Cache')
const User = use('App/Models/User')
class UserController {
async index(request, response) {
// forget a specific key
await Cache.forget('users')
}
}
To Do
- [x] Add basic functionality
- [x] Add memory driver
- [x] Add redis driver
- [ ] Add a method to flush all cached values
- [ ] Add a command to flush all cached values
- [ ] Support for different environments
Release History
- 0.1.0 - First draft.
- 0.3.0 - Initial release and basic functionality and supports for memory storage.
- 0.4.0 - Add support for Redis driver
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.