node-redis 6 منتشر شد؛ حالا RESP3 پیشفرضه
خلاصهٔ کاملتر
تیم Redis نسخهٔ 6.0.0 از کلاینت رسمی node-redis رو منتشر کرد؛ این اولین نسخهٔ بزرگ (major) بعد از سری ۵.x هست. طبق یادداشت انتشار، تغییر تیتروار اینه که حالا RESP3 بهصورت پیشفرض فعاله، در کنارش پوشش گستردهتر دستورهای Redis 8.8، یه سری اصلاح برای پایداری pubsub و cluster، و بالا رفتن حداقل نسخهٔ Node.js.
مهمترین نکته همون پیشفرض شدن RESP3 هست. RESP پروتکل ارتباطیِ روی سیمِ Redis هست و نسخهٔ ۳ ساختار دادهٔ غنیتری برمیگردونه. اگه به هر دلیلی هنوز به فرمت قدیمی نیاز داری، باید صریحاً برگردی روی RESP2. این یه تغییر شکنندهٔ (breaking) مهمه که ممکنه شکل خروجیِ بعضی دستورها رو عوض کنه.
بین تغییرات شکننده، دو مورد دیگه هم هست: حالا حداقل نسخهٔ پشتیبانیشدهٔ runtime، Node.js 20 هست، و مقدار پیشفرضِ keepAliveInitialDelay به ۳۰ ثانیه و commandTimeout به ۵ ثانیه تغییر کرده. برای مهاجرت از v5 به v6، خود مقاله به راهنمای migration اشاره میکنه.
از نظر امنیتی هم یه اصلاح انجام شده: توی بخش entraid، وابستگیِ @azure/msal-node به نسخهٔ ۵.x ارتقا پیدا کرده تا یه وابستگیِ تراگذرِ (transitive) آسیبپذیر از uuid حذف بشه؛ این مورد به CVE-2026-41907 مربوطه.
از نظر قابلیتهای جدید، پوشش دستورهای Redis 8.8 اضافه شده؛ مثل دستورهای آرایهایِ تازه، INCREX و INCREXBYFLOAT، یه aggregator به اسم COUNT برای ZINTER/ZUNION و نسخههای store اونها، دستور XNACK و CLIENT UNBLOCK. علاوه بر این، گزینهٔ FPHA به JSON.SET اضافه شده، APIهای multi-aggregation range برای time-series اومده، متد duplicate() به RedisSentinel اضافه شده و حالا parseURL میتونه آدرسهای unix:// رو هم پارس کنه.
یه بخش مهم دیگه، اصلاح باگهای مربوط به sentinel و cluster هست. حالا وقتی failover اتصالهای pubsub رو جابهجا میکنه، sentinel از آدرسِ mapشدهٔ درست استفاده میکنه، و cluster بعد از reconnect شدن یه node، توپولوژیِ sharded pubsub رو بازیابی میکنه. در کنارش کلاسهای اصلیِ کلاینت یعنی RedisClient، RedisCluster، RedisSentinel و کلاسهای pool حالا بهصورت عمومی re-export میشن و ماژولهای stack روی تایپِ pool در دسترسن.
نکات کلیدی:
- node-redis به نسخهٔ ۶ رسید؛ اولین نسخهٔ major بعد از ۵.x
- پروتکل RESP3 حالا پیشفرضه و برای فرمت قدیمی باید دستی روی RESP2 برگردی
- حداقل نسخهٔ Node.js به ۲۰ رسید و پیشفرضهای keepAliveInitialDelay و commandTimeout عوض شدن
- پوشش دستورهای Redis 8.8 اضافه شد؛ مثل INCREX، XNACK، CLIENT UNBLOCK و aggregator به اسم COUNT
- اصلاح امنیتی برای حذف وابستگیِ آسیبپذیر uuid (CVE-2026-41907) و رفع باگهای pubsub توی sentinel و cluster




