مقدمه

در ادامه مباحث مربوط به کار با لیست‌ها در Redis، این مقاله به بررسی دستور LINDEX می‌پردازد. این دستور امکان دسترسی به عناصر لیست بر اساس اندیس آن‌ها را فراهم می‌کند.

مفاهیم پایه ای اندیس‌گذاری

در پایگاه داده Redis، اندیس‌گذاری لیست‌ها به صورت زیر عمل می‌کند:

  • اندیس ۰ نشان‌دهنده اولین عنصر لیست است
  • اندیس ۱ به عنصر دوم اشاره دارد
  • اندیس‌های منفی از انتهای لیست شمارش می‌شوند (۱- برای آخرین عنصر)
  • اندیس ۲- به عنصر ماقبل آخر اشاره می‌کند

نحوه استفاده از دستور LINDEX

دستور LINDEX با ساختار زیر استفاده می‌شود:

LINDEX key index

که در آن:

  • key نام کلید ذخیره‌سازی لیست
  • index موقعیت عنصر مورد نظر در لیست

مثال عملی

برای یک لیست با نام departments که شامل عناصر زیر است:

  1. programming
  2. HR
  3. admin
  4. sales
  5. marketing

دستورات زیر قابل اجرا هستند:

LINDEX departments 0 // بازگرداندن اولین عنصر (programming)
LINDEX departments 3 // بازگرداندن عنصر چهارم (sales)
LINDEX departments -1 // بازگرداندن آخرین عنصر (marketing)

خطاها و موارد خاص

  • در صورت درخواست اندیس ناموجود (مثلاً اندیس ۱۰ برای لیستی با ۵ عنصر)، مقدار nil بازگردانده می‌شود
  • این رفتار برای اندیس‌های منفی ناموجود نیز صادق است

کاربردهای پیشرفته

دستور LINDEX می‌تواند در سناریوهای مختلفی مفید باشد، از جمله:

پیاده‌سازی سیستم ثبت قیمت‌ها

برای ذخیره‌سازی آخرین قیمت‌های سهام می‌توان از لیست‌ها استفاده کرد:

RPUSH MSFT_close_prices 10 10.20 15 20

سپس با دستورات زیر می‌توان به اطلاعات دسترسی پیدا کرد:

LINDEX MSFT_close_prices -1 // آخرین قیمت
LINDEX MSFT_close_prices -2 // قیمت ماقبل آخر

تفاوت LPUSH و RPUSH در اندیس‌گذاری

نوع دستور استفاده شده برای ایجاد لیست بر روی اندیس‌ها تأثیر می‌گذارد:

  • LPUSH عناصر جدید را به ابتدای لیست اضافه می‌کند
  • RPUSH عناصر جدید را به انتهای لیست اضافه می‌کند

این تفاوت در هنگام دسترسی به عناصر با اندیس‌های ثابت مهم است.

نتیجه‌گیری

دستور LINDEX ابزاری ساده اما قدرتمند برای دسترسی به عناصر لیست‌ها در Redis است. با ترکیب این دستور با سایر دستورات لیست مانند LPUSH، RPUSH و LRANGE، می‌توان ساختارهای داده‌ای پیچیده‌ای را پیاده‌سازی کرد. درک صحیح از سیستم اندیس‌گذاری و تفاوت بین دستورات افزودن عنصر به لیست، برای استفاده مؤثر از این قابلیت ضروری است.

Categorized in: