Redis GETEX

Redis Getex



Redis ایک کلیدی قدر والا ڈیٹا اسٹور ہے جسے میموری میں موجود کیش، ڈیٹا بیس، ٹائم سیریز، اسٹریم انجن، میسج بروکر وغیرہ کے طور پر استعمال کیا جاتا ہے۔ چونکہ Redis ڈیٹا اسٹور ڈیٹا کو رکھنے کے لیے کلیدی قدر کے جوڑے کی سادہ شکل کا استعمال کرتا ہے، اس لیے یہ بہت زیادہ میموری ہے۔ موثر اس کے علاوہ، کم وقت کی پیچیدگیوں جیسے O(1) اور O(log(N)) کے ساتھ استفسار کی رفتار بہت زیادہ ہے۔ Redis کیز مختلف ڈیٹا ڈھانچے کو رکھ سکتی ہیں، جیسے سٹرنگ، سیٹ، ہیش، ترتیب شدہ سیٹ، اور فہرستیں۔

عام طور پر، GET اور SET کمانڈز کو ایک دی گئی Redis کلید میں ذخیرہ شدہ سٹرنگ قسم کی اقدار کو ذخیرہ کرنے اور بازیافت کرنے کے لیے استعمال کیا جاتا ہے۔ یہ دونوں کمانڈ مستقل وقت کی پیچیدگی کے ساتھ کام کرتے ہیں۔







اس کے علاوہ، GETEX کمانڈ دی گئی کلید پر ذخیرہ شدہ سٹرنگ ویلیوز کو پڑھنے کے لیے دستیاب ہے۔ لیکن یہ کمانڈ متوازی تحریری آپریشن کے ساتھ بھی وابستہ ہے۔ یہ گائیڈ GETEX کمانڈ نحو، اس کے اختیارات اور استعمال کے معاملات پر توجہ مرکوز کرے گا۔



ریڈیس کلید کا TTL

زندہ رہنے کا وقت (TTL) ویلیو ڈیٹا کے دیے گئے حصے کی میعاد ختم ہونے کا وقت ہے۔ عام طور پر، ایک TTL ڈیٹا بیس کی قطاروں کے ساتھ منسلک کیا جا سکتا ہے۔ ریڈیس کیز کے ساتھ بھی ٹائم آؤٹ سیٹ کیا جا سکتا ہے۔ لہذا، ایک Redis کلائنٹ باقی سیکنڈوں کو چیک کر سکتا ہے کہ ایک دی گئی کلید ڈیٹا اسٹور میں دستیاب ہوگی۔ Redis ایک دی گئی کلید کی لائیو ویلیو کا وقت چیک کرنے کے لیے TTL کمانڈ پیش کرتا ہے۔ اگر کوئی ٹائم آؤٹ کسی مخصوص کلید کے ساتھ منسلک نہیں ہے، تو TTL کمانڈ -1 لوٹاتا ہے۔ دی گئی کلید کے بقیہ وقت کو چیک کرنے کے لیے ہم اگلے حصوں میں TTL کمانڈ استعمال کریں گے۔



GETEX کمانڈ

جیسا کہ نمایاں کیا گیا ہے، GETEX کمانڈ GET کمانڈ سے زیادہ مشابہت رکھتی ہے، سوائے اس کے کہ اسے مخصوص کلید کے لیے میعاد ختم ہونے کا وقت مقرر کرنے کے لیے استعمال کیا جا سکتا ہے۔ مزید برآں، ایک کمانڈ آپشن دی گئی کلید سے ٹائم آؤٹ ویلیو کو ہٹا سکتا ہے۔ GETEX کمانڈ نحو مندرجہ ذیل ہے:





GETEX کلید [ EX ٹائم آؤٹ_ان_سیکنڈز | PX ٹائم آؤٹ_میں_ملی سیکنڈز | EXAT timeout_in_unix-time-سیکنڈز | PXAT ٹائم آؤٹ_in_unix-time-milliseconds | اصرار ]

چابی: یہ وہ کلید ہے جو سٹرنگ ویلیو کی طرف اشارہ کرتی ہے۔

درج ذیل اختیاری دلائل کو سیکنڈ یا ملی سیکنڈ میں ٹائم آؤٹ سیٹ کرنے کے لیے استعمال کیا جا سکتا ہے۔



سابق: یہ دی گئی کلید کے لیے میعاد ختم ہونے کا وقت سیکنڈوں میں طے کرے گا۔

PX: کلیدی ٹائم آؤٹ ویلیو ملی سیکنڈ میں سیٹ کی جائے گی۔

اس کے علاوہ، ہم درج ذیل کمانڈ کے اختیارات کا استعمال کرتے ہوئے سیکنڈ یا ملی سیکنڈ میں UNIX ٹائم اسٹیمپ ویلیو کی وضاحت کر سکتے ہیں۔ EXAT اور پی ایکس اے ٹی :

EXAT: میعاد ختم ہونے کا وقت UNIX ٹائم اسٹیمپ فارمیٹ میں مقرر کیا جائے گا، اور ٹائم اسٹیمپ سیکنڈوں میں ہوگا۔

PXAT: دی گئی Redis کلید کا ٹائم آؤٹ ملی سیکنڈز میں UNIX ٹائم اسٹیمپ کے طور پر سیٹ کیا جائے گا۔

اصرار: اس کی وضاحت کر کے، آپ ایک مخصوص کلید سے وابستہ لائیو ویلیو کا وقت ہٹا سکتے ہیں۔

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

درج ذیل حصے میں، ہم GETEX کمانڈ کے عملی استعمال کا احاطہ کریں گے۔

کیس استعمال کریں - پاس ورڈ کی بازیابی/OTPs کے لیے عارضی ری سیٹ لنک یا پن کوڈ جنریشن

ایک ویب ہوسٹنگ کمپنی رجسٹرڈ صارفین کے لیے پاس ورڈ ریکوری فیچر فراہم کر رہی ہے۔ حفاظتی اقدام کے طور پر، وہ صارف کو ایک نیا URL لنک بھیجتے ہیں، جو 5 منٹ کے اندر ختم ہو جائے گا۔ کمپنی ایک طویل عرصے سے Redis ڈیٹا اسٹور کا استعمال کر رہی ہے اور GETEX کمانڈ کا استعمال کرتے ہوئے کسی صارف کے لیے لائیو ویلیو کا وقت مقرر کرتی ہے۔

آئیے فرض کریں کہ user_id 1000 والا صارف پاس ورڈ کی بازیابی کی درخواست کرتا ہے۔ لہذا، ریکوری یو آر ایل کو کلید میں محفوظ کیا جا سکتا ہے۔ RecoveryURL:UserID:1000 . ہم ریکوری یو آر ایل کو ذخیرہ کرنے کے لیے SET کمانڈ کو اس طرح استعمال کر سکتے ہیں:

سیٹ RecoveryURL:UserID: 1000 'https://abc.com/recovery/userid=1000,key=sdfiuoe3290e9rjs'

آئیے چیک کریں کہ آیا سٹرنگ یو آر ایل کلید پر صحیح طریقے سے محفوظ ہے۔ RecoveryURL:UserID:1000۔ ہم مندرجہ ذیل کے طور پر GETEX کمانڈ استعمال کر سکتے ہیں:

getex RecoveryURL:UserID: 1000

پچھلی کمانڈ کا آؤٹ پٹ درج ذیل میں دکھایا گیا ہے:

اگر ہم نے GETEX کمانڈ کے بجائے GET کمانڈ استعمال کیا ہے تو آؤٹ پٹ ایک جیسا ہوگا۔

آئیے ٹی ٹی ایل کمانڈ کا استعمال کرتے ہوئے یہ چیک کریں کہ آیا اس کلید کے ساتھ میعاد ختم ہونے کا وقت وابستہ ہے۔

Ttl RecoveryURL:UserID: 1000

جیسا کہ توقع کی گئی ہے، -1 کو TTL کمانڈ کے ذریعے واپس کر دیا گیا ہے، جس کا مطلب ہے کہ مخصوص کلید کے ساتھ ختم ہونے کا کوئی وقت وابستہ نہیں ہے۔

اس مثال کے مطابق، ہوسٹنگ کمپنی کو ریکوری یو آر ایل کے لیے 5 منٹ کا ٹائم آؤٹ سیٹ کرنے کی ضرورت ہے۔ لہذا، ہم استعمال کریں گے سابق کمانڈ آپشن. چونکہ 5 منٹ 300 سیکنڈ ہیں، اس لیے ہم GETEX کمانڈ کو اس طرح بنا سکتے ہیں:

getex RecoveryURL:UserID: 1000 سابق 500

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

جیسا کہ توقع کی گئی ہے، وقت کم ہو رہا ہے، اور آخر کار، RecoveryURL:UserID:1000 کلید کو ہٹا دیا جائے گا. مندرجہ ذیل 5 منٹ کے بعد آؤٹ پٹ ہے:

-2 کو کمانڈ کے ذریعہ واپس کردیا گیا ہے، جس کا مطلب ہے کہ کلید کی میعاد ختم ہوگئی ہے اور ڈیٹا اسٹور سے حذف کردی گئی ہے۔

بعض اوقات، آپ کو دی گئی کلید سے وابستہ ٹائم آؤٹ ویلیو کو ہٹانے کی ضرورت پڑ سکتی ہے۔ لہذا، PERSIST کمانڈ آپشن کو ایک مخصوص کلید سے متعلق TTL قدر کو حذف کرنے کے لیے استعمال کیا جا سکتا ہے۔

آئیے ایک اور نمونہ کی کلید بنائیں اور اس کے لیے سٹرنگ ویلیو تفویض کریں۔ اس صورت میں، ہم TTL ویلیو کو ملی سیکنڈ میں پاس کر کے بیان کریں گے۔ پی ایکس اختیار

سیٹ KeytoTestPersist 'یہ 60 سیکنڈ میں ختم ہو جائے گا' پی ایکس 50000

اگلا، ہم بقیہ وقت کو اس طرح چیک کریں گے:

جیسا کہ توقع کی جا رہی ہے، ٹی ٹی ایل کم ہو رہا ہے۔ آئیے GETEX کمانڈ کو PERSIST آپشن کے ساتھ اس طرح کال کریں:

getex KeytoTestPersist برقرار ہے۔

مثالی طور پر، یہ اس کلید سے وابستہ TTL کو ہٹا دے گا۔ آئیے کلید کے لیے TTL کا معائنہ کریں۔ KeytoTestPersist۔

TTL کمانڈ نے -1 واپس کر دیا، جس کا مطلب ہے کہ کوئی TTL کلید سے منسلک نہیں ہے۔ KeytoTestPersist۔

اسی طرح، د GETEX کمانڈ کا استعمال UNIX ٹائم اسٹیمپ میں کیز کے لیے ختم ہونے کا وقت مقرر کرنے کے لیے کیا جا سکتا ہے۔

نتیجہ

خلاصہ طور پر، Redis GETEX کمانڈ کو GET کمانڈ کی طرح دی گئی کلید میں ذخیرہ شدہ سٹرنگ ویلیوز کو بازیافت کرنے کے لیے استعمال کیا جا سکتا ہے۔ GETEX کمانڈ کے ساتھ فرق صرف یہ ہے کہ یہ دی گئی کلید کے لیے ختم ہونے کے اوقات کو ترتیب دینے اور ہٹانے کی حمایت کرتا ہے۔ یہ سیکنڈز، ملی سیکنڈز، اور UNIX-ٹائم اسٹیمپ سیکنڈز یا ملی سیکنڈز میں ختم ہونے کا وقت بتانے کے لیے کئی اختیاری دلائل کی حمایت کرتا ہے۔ جیسا کہ زیر بحث آیا، کمانڈ ایک دی گئی کلید کے لیے متعلقہ TTL کو ہٹانے کے لیے PERSIST آپشن فراہم کرتی ہے۔ مجموعی طور پر، GETEX کمانڈ مستقل وقت کی پیچیدگی کے ساتھ کام کرتی ہے۔