Valkey vs Redis: چرا یه fork جدید اومد و کدوم رو باید انتخاب کنی
حدود ۴ دقیقه مطالعه
اگه چند وقتیه دنبال اخبار دنیای دیتابیسها و کش بودی، احتمالاً اسم Valkey رو دیدی و برات سؤال شده چرا یهو یه رقیب جدی برای Redis ظاهر شده، در حالی که تا همین چند سال پیش Redis عملاً بدون رقیب تو حوزهی خودش بود. داستان این fork، بیشتر به یه تغییر لایسنس برمیگرده تا یه اختلاف فنی.
چرا Valkey اصلاً به وجود اومد
مارس ۲۰۲۴، شرکت Redis Ltd. اعلام کرد که نسخههای بعدی Redis دیگه از لایسنس متنباز BSD استفاده نمیکنن و بهجاش زیر لایسنسهای Source Available (مثل RSALv2 و SSPLv1) منتشر میشن. این تغییر یعنی شرکتهایی که میخواستن Redis رو بهعنوان یه سرویس ارائه بدن (مثل کلود پرووایدرها)، دیگه اجازهی این کار رو بدون توافق جداگانه با Redis Ltd. نداشتن.
این تصمیم واکنش شدیدی تو کامیونیتی اوپنسورس ایجاد کرد. چند روز بعد، لینوکس فاندیشن به همراه چند تا شرکت بزرگ (از جمله AWS، Google Cloud، Oracle، Ericsson و چند تا دیگه) پروژهی Valkey رو راه انداختن؛ یه fork از آخرین نسخهی BSD-licensed Redis (نسخهی ۷.۲.۴) که زیر همون لایسنس متنباز BSD قدیمی باقی میمونه و توسعهاش کاملاً community-driven پیش میره.
از نظر فنی چقدر فرق دارن
نکتهی مهم اینه که چون Valkey از یه commit مشخص از Redis فورک شده، تا مدتها تقریباً کد یکسانی داشتن؛ همون دستورات، همون ساختار داده (string، hash، list، set، sorted set)، و همون پروتکل RESP. یعنی اگه یه اپلیکیشن با Redis کار میکرد، تغییر به Valkey تو خیلی از موارد فقط با عوض کردن آدرس سرور ممکن بود، بدون تغییر تو کد.
ولی از اون موقع، هر دو پروژه مسیر مستقل خودشون رو رفتن. Valkey ویژگیهایی مثل بهبود عملکرد چندنخی (multi-threading بهتر برای بعضی عملیات)، کاهش مصرف حافظه، و چند تا دستور جدید اضافه کرده که مستقیماً از Redis نمیان. از طرف دیگه، Redis Ltd. هم بعداً یه تغییر جهت دیگه داد و اعلام کرد که از نسخهی ۸ به بعد، Redis دوباره زیر یه لایسنس متنباز (AGPLv3) منتشر میشه؛ هرچند AGPL هم شرایط خاص خودش رو داره و دقیقاً همون آزادی BSD رو نمیده.
چرا این تفاوت لایسنس واقعاً مهمه
برای خیلی از تیمها، این موضوع صرفاً یه بحث حقوقی انتزاعی نیست. لایسنسهای Source Available که Redis Ltd. تو یه بازه استفاده کرد، محدودیتهایی رو برای شرکتهایی که میخوان از Redis بهعنوان بخشی از یه سرویس commercial استفاده کنن ایجاد میکنه. حتی با برگشت Redis به AGPL، بعضی سازمانها (بهخصوص اونهایی که سیاستهای سختگیرانهای دربارهی لایسنسهای copyleft قوی دارن) ترجیح میدن سراغ چیزی برن که از اول زیر BSD مونده، بدون هیچ تغییر مسیری تو تاریخچهش.
همین عدم قطعیت باعث شده خیلی از توزیعهای لینوکس بزرگ (مثل Debian و Fedora) و کلود پرووایدرهای بزرگ (AWS با Amazon ElastiCache و Google Cloud با Memorystor) به سمت پشتیبانی از Valkey حرکت کنن یا حداقل گزینهی Valkey رو کنار Redis ارائه بدن.
کدوم رو باید انتخاب کنی
اگه یه پروژهی جدید رو از صفر شروع میکنی و لایسنس متنباز کاملاً آزاد (BSD) برات اهمیت داره، یا میخوای مطمئن باشی که هیچ تغییر لایسنسی تو آینده گریبانت رو نمیگیره، Valkey انتخاب منطقیتریه؛ مخصوصاً که پشتوانهی چند تا از بزرگترین شرکتهای زیرساخت دنیا رو داره و توسعهش هم فعاله.
اگه از قبل با Redis کار میکنی و به ابزارها، افزونهها یا سرویسهای خاصی که مستقیم از Redis Ltd. میان وابستهای (مثل Redis Enterprise یا بعضی ماژولهای اختصاصی)، یا اصلاً لایسنس براتون مسئلهی حادی نیست، ادامه دادن با Redis همچنان گزینهی معتبریه؛ خصوصاً که با AGPL نسخهی ۸، دوباره به یه مسیر متنباز برگشته.
نکتهی عملی آخر: چون این دو پروژه از یه نقطهی مشترک شروع شدن، مهاجرت بینشون (تو هر جهتی) هنوز نسبتاً کمدردسره، پس تصمیم امروز لزوماً برای همیشه قفل نمیشه. اگه مطمئن نیستی، شروع با Valkey ریسک کمتری داره؛ چون برگشتن به Redis همیشه یه گزینهی باز باقی میمونه.
