Introduction to Keyv
Keyv is a lightweight and powerful key-value storage solution that is perfect for managing your server cache. It is very flexible as it supports multiple storage mechanisms, including Redis, MongoDB, and SQLite. In this comprehensive guide, we will explore the extensive API that Keyv offers and provide several code snippets along the way to help you get started.
Installation
npm install keyv
Basic Usage
First, let’s look at how to get started with Keyv. Below are some basic example codes.
const Keyv = require('keyv');
const keyv = new Keyv();
keyv.on('error', err => console.log('Connection Error', err));
(async () => {
await keyv.set('foo', 'bar');
console.log(await keyv.get('foo')); // bar
await keyv.delete('foo');
console.log(await keyv.get('foo')); // undefined
})();
Connecting to Different Storage Adapters
Keyv supports various storage engines. Here’s how you can connect Keyv to different storage adapters.
Redis
const keyvRedis = new Keyv('redis://user:pass@localhost:6379');
MongoDB
const keyvMongo = new Keyv('mongodb://user:pass@localhost:27017/dbname');
SQLite
const keyvSQLite = new Keyv('sqlite://path/to/database.sqlite');
API Methods
Keyv offers several useful methods:
Setting a Value
await keyv.set('foo', 'bar', 10000); // Time-to-live in milliseconds
Getting a Value
const value = await keyv.get('foo');
Deleting a Value
const deleted = await keyv.delete('foo');
console.log(deleted); // true if key was found and deleted, false otherwise
Clearing All Data
await keyv.clear();
Advanced Usage
Let’s take a look at a more comprehensive example where we use Keyv in an actual application scenario:
const express = require('express');
const Keyv = require('keyv');
const app = express();
const keyv = new Keyv('mongodb://user:pass@localhost:27017/mydb');
keyv.on('error', err => console.log('Connection Error', err));
app.get('/store', async (req, res) => {
await keyv.set('page', 'home', 60000);
res.send('Page stored in cache');
});
app.get('/page', async (req, res) => {
const page = await keyv.get('page');
res.send(page ? `Cached Page: ${page}` : 'No page found in cache');
});
app.listen(3000, () => console.log('Server running on port 3000'));
Conclusion
Keyv is an excellent tool for managing cache in your applications due to its simplicity and flexibility. Whether you’re working on a small project or a large-scale application, Keyv has the potential to optimize your server’s caching strategy efficiently.
Hash: 1c7f6aa2af3e85ccbe7d9456e41eee339b3ee2d4631bec07b1389bfe795a8e03