Redis Array Playground: آرایهها به ردیس اضافه شدن!
خلاصهٔ کاملتر
سالواتوره سانفیلیپو، همون کسی که ردیس رو از صفر ساخته، یه PR به ریپوزیتوری رسمی ردیس فرستاده که یه نوع داده کاملاً جدید معرفی میکنه: آرایه. این تغییر هنوز در یه برنچ جداگانهست و به نسخه اصلی merge نشده، ولی خودِ ایده و پیادهسازیش خیلی جالبه.
برای این نوع داده جدید، یه سری دستور اختصاصی تعریف شده که همه با پیشوند AR شروع میشن. دستوراتی مثل ARSET، ARGET، ARINSERT، ARDEL، ARLEN و چند تای دیگه برای مدیریت عادی آرایه وجود دارن. کنارشون دستوراتی مثل ARGETRANGE، ARDELRANGE، ARLASTITEMS و ARSCAN هم هستن که روی بازهای از دادهها کار میکنن.
جالبترین دستور از همه ARGREP هست. این دستور میتونه یه جستجوی regex رو مستقیماً روی سمت سرور روی مقادیر آرایه اجرا کنه. برای این کار از کتابخانهی TRE استفاده شده که به کد ردیس vendor شده. این یعنی دیگه لازم نیست همه دادهها رو بکشی سمت کلاینت و اونجا فیلتر کنی.
سایمون ویلیسون برای اینکه آدمها بتونن این دستورها رو بدون هیچ نصبی امتحان کنن، یه پلیگراند تعاملی ساخته. این پلیگراند از یه نسخه WASM-compiled از ردیس استفاده میکنه که کاملاً توی مرورگر اجرا میشه. ساختِ این ابزار خودش با کمک Claude Code انجام شده.
برای مثال، با دستورهایی مثل زیر میشه آرایه ساخت و دادهها رو مدیریت کرد:
ARSET myarray 0 "hello"
ARSET myarray 1 "world"
ARGET myarray 0
ARLEN myarray
ARGREP myarray 0 -1 "hel.*"
سالواتوره خودش هم یه پست جداگانه درباره فرآیند توسعه این نوع داده نوشته و توضیح داده که چطور از هوش مصنوعی در طول این پروژه کمک گرفته. این جالبه چون نشون میده حتی توسعهدهندههای باتجربهای مثل سازنده ردیس هم از ابزارهای AI در کارشون استفاده میکنن.
به طور کلی، اضافه شدن نوع داده آرایه به ردیس میتونه برای use caseهایی که به ذخیرهسازی ordered data با قابلیت جستجوی سمت سرور نیاز دارن خیلی مفید باشه. اینکه این PR نهایتاً به نسخه اصلی ردیس راه پیدا میکنه یا نه، هنوز مشخص نیست ولی ایدههایی که پشتشه ارزش دنبال کردن دارن.
نکات کلیدی:
- سالواتوره سانفیلیپو یه نوع داده جدید به اسم Array به ردیس اضافه کرده (هنوز در مرحله PR)
- مجموعه دستورات جدید همه با پیشوند
ARشروع میشن؛ مثلARSET،ARGET،ARGREP - دستور
ARGREPبا کمک کتابخانه TRE، جستجوی regex رو مستقیماً روی سرور اجرا میکنه - یه پلیگراند تعاملی مبتنی بر WebAssembly برای امتحان کردن این دستورها در مرورگر ساخته شده
- خودِ این پلیگراند با کمک Claude Code ساخته شده
- سالواتوره درباره نقش هوش مصنوعی در توسعه این فیچر هم نوشته




