@lakutata-component/cacher
Version:
Lakutata Cacher Component
89 lines (77 loc) • 3.23 kB
Markdown
<div style="text-align:center">
<img src="https://gitee.com/nnxr/lakutata-component-cacher/raw/master/assets/lakutata-banner.png" />
</div>
[](https://npmjs.org/package/@lakutata-component/cacher)
[](https://npmjs.org/package/@lakutata-component/cacher)
[](https://snyk.io/test/npm/@lakutata-component/cacher)
[](https://npmjs.org/package/@lakutata-component/cacher)
## Features
- Memory Cache
- File System Cache
- Redis Cache
- Memcached Cache
## Quickstart
```typescript
import {createApp} from '@lakutata/core'
import {CacherComponent, CacheOptions} from '@lakutata-component/cacher'
createApp({
id: 'cache.test.app',
name: 'cache-test',
components: {
memoryCache: {
class: CacherComponent,
options: {
type: 'memory',
ttl: 5
} as CacheOptions
},
redisCache: {
class: CacherComponent,
options: {
type: 'redis',
host: 'localhost',
ttl: 5
} as CacheOptions
},
fsCache: {
class: CacherComponent,
options: {
type: 'fs',
ttl: 5
} as CacheOptions
},
memcachedCache: {
class: CacherComponent,
options: {
type: 'memcached',
hosts: 'localhost',
ttl: 5
} as CacheOptions
}
}
}).then(async app => {
const memoryCacheComponent: CacherComponent = app.Components.get<CacherComponent>('memoryCache')
const redisCacheComponent: CacherComponent = app.Components.get<CacherComponent>('redisCache')
const fsCacheComponent: CacherComponent = app.Components.get<CacherComponent>('fsCache')
const memcachedCacheComponent: CacherComponent = app.Components.get<CacherComponent>('memcachedCache')
await memoryCacheComponent.set('cacheKey', {testMsg: 'This is memoryCache'})
await redisCacheComponent.set('cacheKey', {testMsg: 'This is redisCache'})
await fsCacheComponent.set('cacheKey', {testMsg: 'This is fsCache'})
await memcachedCacheComponent.set('cacheKey', {testMsg: 'This is memcachedCache'})
setTimeout(async () => {
app.Logger.info(await memoryCacheComponent.get('cacheKey'))
app.Logger.info(await redisCacheComponent.get('cacheKey'))
app.Logger.info(await fsCacheComponent.get('cacheKey'))
app.Logger.info(await memcachedCacheComponent.get('cacheKey'))
}, 1000)
}).catch(e => {
console.error(e)
process.exit(1)
})
```
> @lakutata/core required.
## How to Contribute
Please let us know how can we help. Do check out [issues](https://gitee.com/nnxr/lakutata-component-cacher/issues) for
bug reports or suggestions first.
## License
[MIT](LICENSE)