پرش به مطلب اصلی

Pipeline

وقتی از pipeline تو ردیس استفاده می‌کنی، در واقع داری چندتا دستور رو پشت سر هم می‌فرستی به ردیس بدون اینکه منتظر بمونی تا جواب هرکدوم برگرده. یعنی یه جورایی همه کاراتو یه‌جا میریزی تو صف، ردیس همه‌شونو با هم می‌گیره و بعدم یه‌جا جوابتو می‌ده. این کار باعث می‌شه زمان رفت‌و‌برگشت کم بشه و سرعت خیلی بیشتر شه، مخصوصاً وقتی می‌خوای تعداد زیادی کلید رو بخونی یا بنویسی.

حالا rtt که مخفف round trip time هست، یعنی زمان رفت و برگشت یه درخواست تا ردیس. مثلاً وقتی یه GET می‌فرستی، از لحظه‌ای که فرستادی تا وقتی جواب برمی‌گرده، اون زمان می‌شه rtt. اگه این عدد زیاد باشه یعنی یا ردیس خیلی دوره، یا شبکه‌ت شلوغه یا اینکه کلی درخواست داری رد و بدل می‌کنی. هر چی rtt کمتر، بهتر.

در نهایت برسیم به mget و mset. اینا در واقع نسخه‌ی گروهی دستور get و set هستن. به جای اینکه برای هر کلید جدا get بزنی، با mget چندتا کلید رو یه‌جا می‌فرستی و یه‌جا جواب می‌گیری. همینطور mset هم چندتا مقدار رو یه‌جا تو ردیس می‌ذاره. اینا هم سرعت رو بالا می‌برن و هم بهتر می‌تونن با pipeline ترکیب شن تا بهینه‌تر کار کنن.