> For the complete documentation index, see [llms.txt](https://docs.novel.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.novel.dev/novel-server/database/caching.md).

# Caching

Novel's philosophy of low overhead affects the function of caching because it do not use traditional caching services.

Caching in Novel makes use of PostgreSQL's `SKIP UNLOGGED` feature. So the caching layer is within the database layer itself.

The cache is located in the `cache` table.&#x20;

## Usage

You can use the cache through

{% code title="feature.ts" lineNumbers="true" %}

```typescript
import cache from 'novel/cache';

await cache.set('key', value);

await cache.get('key');
```

{% endcode %}

The cache key is hashed and stored in the cache table.

### `cache.get(key: string)`

You can get a cached value from the database through a simple function.

### `cache.set(key: string, value: any, ttl?: number)`

You can set the value as well as a TTL for the key you want to set

### `cache.clear(key: string)`

Remove a key from the cache.

### `cache.touch(key: string, ttl: number)`

If you want to extend the TTL of a cached key.
