Redis XTRIM

Redis Xtrim



ریڈیس اسٹریمز کی نچلی سطح کی تفصیلات

ریڈیس اسٹریمز ایک ضمیمہ صرف ڈیٹا کا ڈھانچہ ہے جو میموری سے موثر اسٹوریج میکانزم کے ساتھ انتہائی موثر پڑھنے اور داخل کرنے کے آپریشنز کا ایک سیٹ فراہم کرتا ہے۔ اندرونی طور پر، Redis اسٹریمز میں Radix Tree ڈیٹا ڈھانچہ استعمال ہوتا ہے جو کہ اعلی میموری کی کارکردگی کے ساتھ اسپیس کے لیے موزوں درخت ہے۔

ریڈیس اسٹریمز ڈیٹا کو اندراجات کی فہرست کے طور پر اسٹور کرتی ہے جہاں ہر اندراج کلیدی قدر کے جوڑوں پر مشتمل ہوتا ہے۔ کم سطح پر، یہ اندراجات میکرو نوڈس میں پیک کیے جاتے ہیں، جیسا کہ درج ذیل میں دکھایا گیا ہے۔









اس آرٹیکل میں، ہم XTRIM کمانڈ کا استعمال کرتے ہوئے سٹریم اندراجات کو ہٹانے پر توجہ مرکوز کر رہے ہیں، اور اوپر بیان کردہ تصور ہٹانے کے آپریشن کی کارکردگی کو قریب سے متاثر کرتا ہے۔ عام طور پر، Redis سٹریم کے اندراج کو ہٹانا بہت موثر ہوتا ہے اگر یہ میکرو نوڈ کی سطح پر کیا جاتا ہے لیکن اندراج کی سطح پر نہیں۔ یہ طریقہ کار XTRIM کمانڈ کے ساتھ لاگو کیا گیا ہے جس پر ہم مندرجہ ذیل سیکشن میں بحث کریں گے۔



XTRIM کمانڈ

XTRIM کمانڈ کا استعمال ایک دی گئی حد کی قیمت کی بنیاد پر کسی ندی کے اندراجات کو کاٹنے کے لیے کیا جاتا ہے۔ حد فی سلسلہ اندراجات کی زیادہ سے زیادہ تعداد یا ایک پرانی اندراج id ہو سکتی ہے۔ XTRIM کمانڈ حد کی قسم کو کمانڈ دلیل کے طور پر قبول کرتی ہے۔ XTRIM کمانڈ کا نحو درج ذیل ہے۔





XTRIM stream_key MAXLEN | MINID [ = | ~ ] حد_قدر [ LIMIT شمار ]

stream_key : ریڈیس ندی کی کلید۔

میکسلین : اندراجات کو تراشنے کے بعد ندی کی زیادہ سے زیادہ لمبائی۔ تمام اندراجات کو ہٹا دیا جائے گا جو سٹریم کی لمبائی سے زیادہ ہیں، جو کہ حد کی قدر سے متعین ہوتی ہے۔ یہ دلیل ایک مثبت عدد ہے۔

MINID : کم از کم اسٹریم آئی ڈی جو اندراجات کو تراشنے کے بعد باقی رہنی چاہیے۔ وہ تمام اندراجات ہٹا دی جائیں گی جن کی IDs مخصوص حد سے کم ہیں۔ جب بھی آپ اس پیرامیٹر کی وضاحت کرتے ہیں، حد ایک اسٹریم ID بن جاتی ہے۔

= آپریٹر : مخصوص ہونے پر، حد کی قدر کی بنیاد پر درست تراشی کی جائے گی۔

~ آپریٹر : مخصوص ہونے پر، حد کی قدر اور میکرو نوڈ کے سائز کی بنیاد پر تقریباً درست تراشی کی جائے گی۔

حد_قدر : MAXLEN یا MINID دلیل پر مبنی حد کی قدر۔

LIMIT شمار : ہٹائے جانے والے اندراجات کی زیادہ سے زیادہ تعداد۔

کیس 01 کا استعمال کریں - زیادہ سے زیادہ لمبائی کی بنیاد پر سٹریم اندراجات کو ہٹانا

آئیے فرض کریں کہ ایک سیاحتی کمپنی سیاحوں کی معلومات پر نظر رکھنے کے لیے Redis اسٹور کو برقرار رکھتی ہے۔ ریڈیس اسٹریمز ڈیٹا ڈھانچے کو ہر سیاح کی معلومات کو کلیدی قدر کے جوڑوں کے طور پر ذخیرہ کرنے کے لیے استعمال کیا گیا ہے۔ وقت کے ساتھ، سلسلہ بڑھتا گیا، اور وہ صرف تازہ ترین 1000 اندراجات رکھنے کا منصوبہ بنا رہے ہیں۔ لہذا انہوں نے شناخت کیا ہے کہ کسی بھی وقت ندی کی زیادہ سے زیادہ لمبائی 1000 ہونی چاہئے۔ اسے حاصل کرنے کے لیے XTRIM کمانڈ کا استعمال کیا گیا ہے۔

مظاہرے کے مقاصد کے لیے، سب سے پہلے، ہم مندرجہ ذیل 10 اندراجات کے ساتھ ایک سلسلہ بنائیں گے۔ XADD کمانڈ کو اندراج کرنے کے لیے استعمال کیا گیا ہے۔

xadd touristinfo * نام جیک ملک اٹلی فیملی میمز 5
xadd touristinfo * نام ہیری کنٹری یو ایس اے فیملی میمز دو
xadd touristinfo * نام نیکومیتا ملک جاپان فیملی میمز 3
xadd touristinfo * نام زکریا ملک انڈیا فیملی میمز دو
xadd touristinfo * نام ریڈمنڈ ملک برازیل فیملی میمز 6
xadd touristinfo * نام مل گیا ملک جاپان فیملی میمز 3
xadd touristinfo * نام میری جان کنٹری یو ایس اے فیملی میمز دو
xadd touristinfo * نام لیزا ملک اٹلی فیملی میمز 5
xadd touristinfo * نام نمشیکا ملک جاپان فیملی میمز 3
xadd touristinfo * نام نیشا ملک اٹلی فیملی میمز 5

آئیے ذیل کے طور پر سٹریم ٹورسٹنفو کا معائنہ کرنے کے لیے XRANGE کمانڈ استعمال کریں۔

xrange touristinfo - +

آؤٹ پٹ:

جیسا کہ توقع کی گئی ہے، اس کمانڈ کے ذریعہ 10 سٹریم اندراجات کو ظاہر کیا گیا ہے۔

مظاہرے کے مقاصد کے لیے، ہم اس ندی کو تراش رہے ہیں جہاں اس کی زیادہ سے زیادہ لمبائی 5 ہوگی۔

xtrim touristinfo maxlen 5

آئیے XRANGE کمانڈ کے ساتھ سٹریم کے اندراجات کا دوبارہ معائنہ کریں۔

جیسا کہ توقع کی گئی تھی، پانچ اندراجات کو ندی سے نکال دیا گیا ہے، اور اس کی لمبائی 5 ہے۔

کیس 02 استعمال کریں - اسٹریم آئی ڈی کی بنیاد پر اسٹریم اندراجات کو ہٹانا

آئیے ایک مثال لیتے ہیں جہاں ایک موسمی کمپنی Redis اسٹریمز کا استعمال کرتے ہوئے کسی دیے گئے مقام کے موسم کی معلومات پر نظر رکھتی ہے۔ اب، وہ پرانی اندراجات کو حذف کرنا چاہتے ہیں جن کی مزید ضرورت نہیں ہے۔ ہم MINID حکمت عملی کا استعمال کرتے ہوئے XTRIM کمانڈ استعمال کر سکتے ہیں، جیسا کہ درج ذیل میں دکھایا گیا ہے۔

سب سے پہلے، ہم ویدر انفو کے نام سے ایک سلسلہ بنائیں گے اور اس میں مندرجہ ذیل 5 اندراجات شامل کریں گے۔

xadd موسم کی معلومات * درجہ حرارت 10 نمی پچاس
xadd موسم کی معلومات * درجہ حرارت بیس نمی 70
xadd موسم کی معلومات * درجہ حرارت 12 نمی 65
xadd موسم کی معلومات * درجہ حرارت پندرہ نمی 88
xadd موسم کی معلومات * درجہ حرارت 18 نمی چار پانچ

آؤٹ پٹ:

آئیے ان اندراجات کو ہٹانے کے لیے XTRIM کمانڈ استعمال کریں جن کی IDs مخصوص حد کی قدر سے کم ہے۔

xtrim موسم کی معلومات MINID 1660485503248 - 0

بیان کردہ کم از کم id تیسرے اندراج سے وابستہ ہے۔ لہٰذا، تیسری انٹری کے بعد جو اندراجات کم آئی ڈی ہیں وہ حذف کر دی جائیں گی۔

آؤٹ پٹ:

چونکہ ہم نے واضح طور پر = یا ~ دلائل کی وضاحت نہیں کی ہے، اس لیے کمانڈ = آپریٹر کو بطور ڈیفالٹ استعمال کرتی ہے۔ لہذا، دونوں استعمال کے معاملات میں صحیح تراشی کی گئی ہے۔ اگر آپ نے ~ آپریٹر کو واضح طور پر بیان کیا ہے، تو تقریباً درست تراشی جائے گی، جیسا کہ درج ذیل میں دکھایا گیا ہے۔

جیسا کہ اوپر کی تصویر میں دکھایا گیا ہے، XTRIM کمانڈ ~ آپریٹر کے ساتھ استعمال کی گئی ہے۔ ہم کمانڈ سے ان تمام اندراجات کو ہٹانے کے لیے کہتے ہیں جو 100 کی لمبائی سے زیادہ ہیں۔ چونکہ ہم XTRIM کمانڈ کو درست تراشنے کے لیے مجبور نہیں کرتے ہیں، اس لیے یہ تراشنے کے عمل کی کارکردگی پر توجہ مرکوز کرے گا۔ لہذا، یہ ان فوری اندراجات کو نہیں ہٹائے گا جو ایک ہی میکرو نوڈ سے تعلق رکھتی ہیں۔ یہ اگلے تین اندراجات کو رکھے گا جو ایک ہی میکرو نوڈ میں ہیں اور ان کے بعد تمام میکرو نوڈس کو ہٹا دے گا۔ یہ درست تراشنے کے نقطہ نظر کے مقابلے میں کافی حد تک کارکردگی میں بہتری دیتا ہے، جو کمانڈ کو اضافی کوشش کرنے پر مجبور کرتا ہے۔ یہی طریقہ کار اس وقت ہوتا ہے جب دہلیز انٹری آئی ڈی پر مبنی ہوتی ہے۔

LIMIT دلیل مخصوص سلسلہ سے بے دخل شدہ اندراجات کی تعداد کو محدود کرتی ہے، جس کا استعمال کارکردگی کو مزید بہتر بنانے کے لیے کیا جا سکتا ہے۔

نتیجہ

مختصراً، XTRIM کمانڈ کا استعمال تھریشولڈ ویلیو کی بنیاد پر سٹریم اندراجات کو ہٹانے کے لیے کیا جاتا ہے۔ حد کی قدر کی قسم کو اس سیاق و سباق کے ساتھ تبدیل کیا جا سکتا ہے جس کی وضاحت MAXLEN اور MINID کمانڈ آرگیومنٹس کے ذریعے کی جا رہی ہے۔ جیسا کہ زیر بحث آیا، تراشنا دو طریقوں سے کیا جا سکتا ہے جہاں تراشنے کا عمل حد کو ایک درست یا تخمینی حد کے طور پر سمجھے گا۔ پہلے سے طے شدہ طور پر، کمانڈ = آپریٹر کا استعمال کرتی ہے جو عین مطابق تراشنے کے لیے استعمال ہوتا ہے۔ ~ آپریٹر کے ساتھ، آپ ایک اندازاً تراش سکتے ہیں جیسا کہ اوپر والے حصے میں بتایا گیا ہے۔ مجموعی طور پر، تخمینی ٹرمنگ اپروچ اور LIMIT دلیل آپ کو XTRIM کمانڈ کے ساتھ کافی کارکردگی کا فائدہ حاصل کرنے میں مدد کرتی ہے۔