À propos du projet
Node-Redis est le client Redis officiel pour Node.js, installé avec `npm install redis`. Le package global regroupe la prise en charge des modules Redis Stack ; des packages modulaires sont également publiés séparément : `@redis/client` (client de base et cluster), `@redis/bloom`, `@redis/json`, `@redis/search`, `@redis/time-series` et `@redis/entraid` pour l'authentification par jeton Microsoft Entra ID.
Les clients sont créés avec `createClient()` et prennent en charge les URL de connexion `redis://` et `rediss://`, les paramètres discrets, les sockets UNIX et TLS. `isReady` et `isOpen` exposent l'état de la connexion. Le client est un EventEmitter qui émet les événements `connect`, `ready`, `end`, `error`, `reconnecting`, `terminated`, `invalidate` et les événements de canal partagé ; un écouteur `error` est requis pour éviter l'arrêt du processus.
L'API couvre toutes les commandes Redis intégrées, exposées à la fois sous leurs noms bruts (`HSET`) et sous des alias camelCase (`hSet`), avec des modificateurs de commande passés en tant qu'objets JavaScript et des réponses transformées en structures natives (par exemple, les hachages deviennent des objets). Les données binaires sont prises en charge via `withTypeMapping` mappant les chaînes blob RESP en `Buffer`. Les commandes inconnues peuvent être envoyées avec `sendCommand()`.
Les autres capacités documentées incluent :
- Les transactions via `multi()`/`exec()` et le verrouillage optimiste avec `watch()`.
- Le pub/sub, y compris les canaux partagés.
- Les itérateurs asynchrones pour `SCAN`, `HSCAN`, `SSCAN` et `ZSCAN` avec les options `MATCH`, `COUNT` et `TYPE`.
- Le pipelining automatique des commandes émises dans la même tick de la boucle d'événements.
- `RedisClientPool` dans v5 pour les pools de connexions isolées, utile pour les commandes bloquantes.
- La mise en cache côté client assistée par serveur sur RESP3 avec TTL configurable, limites d'entrée et éviction LRU/FIFO.
- Des guides dédiés pour les déploiements Redis Cluster et Sentinel.
- Les opérations compare-and-set/delete (CAS/CAD) introduites dans Redis 8.4, ainsi qu'un assistant `digest` local XXH3 nécessitant la dépendance peer optionnelle `@node-rs/xxhash`.
- L'instrumentation des métriques OpenTelemetry via `OpenTelemetry.init()` (nécessitant `@opentelemetry/api` et un SDK configuré), et la télémétrie publiée via `diagnostics_channel` de Node.js pour l'intégration APM.
- La prise en charge de la programmabilité pour les scripts et fonctions Lua.
Le README fournit des exemples ESM et CommonJS, des détails de configuration client et des guides de migration de v3 vers v4 et de v4 vers v5. Les changements notables de l'API v5 incluent `close()` remplaçant `quit()` et `destroy()` remplaçant `disconnect()`. Le dépôt est sous licence MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.