Github : https://github.com/mahdavipanah/keyv-upstash
keyv-upstash est un adaptateur de stockage pour Keyv qui le connecte à Upstash Redis, une plateforme Redis sans serveur. Avec cet adaptateur, vous obtenez une solution simple, efficace et flexible pour le stockage clé-valeur dans les applications sans serveur.
Keyv est une bibliothèque de stockage clé-valeur polyvalente qui prend en charge plusieurs backends via des adaptateurs. Il fournit :
Expiration basée sur TTL : idéal pour la mise en cache ou le stockage persistant.
Prise en charge des espaces de noms : évite les collisions de clés dans les environnements partagés.
Extensibilité : Facile à créer des modules personnalisés ou à ajouter des fonctionnalités telles que la compression.
Keyv fonctionne avec de nombreux adaptateurs, tels que Redis, SQLite, MongoDB et maintenant, keyv-upstash pour Upstash Redis.
keyv-upstash étend les capacités de Keyv en l'intégrant à Upstash Redis, offrant :
Compatibilité sans serveur : Upstash Redis fonctionne sans gérer les connexions, évolue automatiquement, parfait pour les applications sans serveur.
Flexible : Compatible avec l'écosystème Keyv et prend en charge les extensions tierces.
Cache Layering : combinez-le avec Cacheable pour une mise en cache multicouche.
Aucun verrouillage du fournisseur : Est entièrement compatible avec serverless-redis-http afin que vous puissiez configurer votre propre Redis sans serveur et utiliser cet adaptateur avec.
Suivez ces étapes pour intégrer keyv-upstash :
Installez Keyv et l'adaptateur Upstash :
npm install keyv keyv-upstash
Facultatif : installez Cacheable pour la mise en cache en couches :
npm install cacheable
Assurez-vous d'avoir une base de données Redis créée dans Upstash. Voici comment utiliser keyv-upstash dans votre projet :
import Keyv from 'keyv'; import { KeyvUpstash } from 'keyv-upstash'; const keyv = new Keyv({ store: new KeyvUpstash({ url: 'your-upstash-redis-url', token: 'your-upstash-redis-token', }), }); // Set a key-value pair await keyv.set('foo', 'bar'); // Retrieve the value const value = await keyv.get('foo'); console.log(value); // 'bar'
Les espaces de noms empêchent les collisions de clés et permettent un effacement limité :
const keyv = new Keyv({ store: new KeyvUpstash({ url: 'your-upstash-redis-url', token: 'your-upstash-redis-token', namespace: 'my-namespace', }), }); await keyv.set('foo', 'bar'); // Stored as 'my-namespace::foo'
Combinez keyv-upstash avec Cacheable pour une mise en cache multicouche :
import { Cacheable } from 'cacheable'; const redisStore = new KeyvUpstash({ url: 'your-upstash-redis-url', token: 'your-upstash-redis-token', }); const cache = new Cacheable({ primary: new Map(), // Fast in-memory caching secondary: redisStore, // Persistent Redis caching }); await cache.set('foo', 'bar', { ttl: 1000 }); // Stores in both layers const value = await cache.get('foo'); // Fast lookup from memory or Redis console.log(value); // 'bar'
Améliorez les performances avec setMany et getMany :
await keyv.setMany([ { key: 'key1', value: 'value1' }, { key: 'key2', value: 'value2' }, ]); const values = await keyv.getMany(['key1', 'key2']); console.log(values); // ['value1', 'value2']
Personnalisez votre configuration avec des options telles que defaultTtl, keyPrefixSeparator et clearBatchSize.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!