منصوبے کے بارے میں

Node-Redis، Node.js کے لیے آفیشل Redis کلائنٹ ہے، جسے `npm install redis` سے انسٹال کیا جاتا ہے۔ امبریلا پیکیج Redis Stack ماڈیول سپورٹ کو بنڈل کرتا ہے؛ ماڈیولر پیکیجز الگ سے بھی شائع کیے جاتے ہیں: `@redis/client` (بیس کلائنٹ اور کلسٹر)، `@redis/bloom`، `@redis/json`، `@redis/search`، `@redis/time-series`، اور `@redis/entraid` برائے Microsoft Entra ID ٹوکن تصدیق۔ کلائنٹس `createClient()` سے بنائے جاتے ہیں اور `redis://` اور `rediss://` کنکشن URLs، مجرد پیرامیٹرز، UNIX ساکٹس، اور TLS کو سپورٹ کرتے ہیں۔ `isReady` اور `isOpen` کنکشن کی حالت ظاہر کرتے ہیں۔ کلائنٹ ایک EventEmitter ہے جو `connect`، `ready`، `end`، `error`، `reconnecting`، `terminated`، `invalidate`، اور sharded-channel ایونٹس خارج کرتا ہے؛ پروسیس کے خاتمے سے بچنے کے لیے ایک `error` لسنر ضروری ہے۔ API تمام بلٹ ان Redis کمانڈز کا احاطہ کرتا ہے، جو خام ناموں (`HSET`) اور camelCase عرفی ناموں (`hSet`) دونوں صورتوں میں دستیاب ہیں، کمانڈ موڈیفائرز JavaScript آبجیکٹس کے طور پر پاس کیے جاتے ہیں اور جوابات مقامی ڈھانچوں میں تبدیل ہو جاتے ہیں (مثلاً ہیشز آبجیکٹس بن جاتے ہیں)۔ بائنری ڈیٹا `withTypeMapping` کے ذریعے سپورٹ کیا جاتا ہے جو RESP blob اسٹرنگز کو `Buffer` میں میپ کرتا ہے۔ نامعلوم کمانڈز `sendCommand()` سے بھیجی جا سکتی ہیں۔ دیگر دستاویزی صلاحیتوں میں شامل ہیں: - `multi()`/`exec()` کے ذریعے ٹرانزیکشنز اور `watch()` کے ساتھ optimistic لاکنگ۔ - Pub/Sub، بشمول sharded چینلز۔ - `SCAN`، `HSCAN`، `SSCAN`، اور `ZSCAN` کے لیے async ایٹریٹرز، `MATCH`، `COUNT`، اور `TYPE` آپشنز کے ساتھ۔ - ایک ہی event-loop ٹک میں جاری کردہ کمانڈز کی خودکار پائپ لائننگ۔ - v5 میں `RedisClientPool`، الگ تھلگ کنکشنز کے پولز کے لیے، جو بلاک کرنے والی کمانڈز کے لیے مفید ہے۔ - RESP3 پر سرور کی مدد سے کلائنٹ سائیڈ کیشنگ، قابل ترتیب TTL، انٹری حدود، اور LRU/FIFO اخراج کے ساتھ۔ - Redis Cluster اور Sentinel تعیناتیوں کے لیے مخصوص گائیڈز۔ - Redis 8.4 میں متعارف کرائے گئے compare-and-set/delete (CAS/CAD) آپریشنز، نیز ایک مقامی XXH3 `digest` مددگار جس کے لیے اختیاری `@node-rs/xxhash` peer dependency درکار ہے۔ - `OpenTelemetry.init()` کے ذریعے OpenTelemetry میٹرکس انسٹرومینٹیشن (جس کے لیے `@opentelemetry/api` اور ایک ترتیب شدہ SDK درکار ہے)، اور APM انضمام کے لیے Node.js `diagnostics_channel` کے ذریعے شائع کردہ ٹیلی میٹری۔ - Lua اسکرپٹس اور فنکشنز کے لیے پروگرامیبلٹی سپورٹ۔ README میں ESM اور CommonJS مثالیں، کلائنٹ کنفیگریشن کی تفصیلات، اور v3 سے v4 اور v4 سے v5 تک مائیگریشن گائیڈز فراہم کی گئی ہیں۔ v5 API کی نمایاں تبدیلیوں میں `quit()` کی جگہ `close()` اور `disconnect()` کی جگہ `destroy()` شامل ہیں۔ ریپوزٹری MIT لائسنس یافتہ ہے۔