Redis EXPIRE ہیش کلید

Redis Expire Ysh Klyd



Redis ہیش ایک خاص قسم کی ڈیٹا کی قسم ہے جو JSON آبجیکٹ، Java HashMap، یا Python ڈکشنری سے بہت زیادہ ملتی جلتی ہے۔ مزید برآں، یہ فیلڈ ویلیو جوڑوں کا ایک مجموعہ ہے جو ڈومین آبجیکٹ کو ماڈل کرنے کے لیے استعمال کیا جا سکتا ہے۔ ریڈیس ہیش ڈیٹا کا ڈھانچہ انتہائی موثر میموری ہے جہاں ہر ہیش کلید چار بلین فیلڈ ویلیو جوڑوں کو محفوظ کر سکتی ہے۔ سب سے اہم بات یہ ہے کہ بنیادی ہیش آپریشنز جیسے HSET, HGET, HMGET وغیرہ مستقل وقت کی پیچیدگی پر کام کرتے ہیں۔


ریڈیس ہیش کیز کے پاس زندہ رہنے کا لامحدود وقت ہوتا ہے (TTL) جس کا مطلب ہے کہ وہ مستقل ہیں انہیں DEL جیسی کمانڈز کا استعمال کرتے ہوئے واضح طور پر حذف کر دیا جاتا ہے۔ اس آرٹیکل میں، ہم EXPIRE کمانڈ کا استعمال کرتے ہوئے Redis ہیش کے لیے TTL سیٹ کرنے پر توجہ مرکوز کریں گے۔







Redis EXPIRE کمانڈ

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



EXPIRE کمانڈ کا نحو درج ذیل ہے:



EXPIRE کلید expiry_time_seconds [ این ایکس | جی ایکس | جی ٹی | ایل ٹی ]


چابی: ہیش، لسٹ، یا سیٹ کی کلید جس کی آپ کو ٹائم آؤٹ سیٹ کرنے کی ضرورت ہے۔





expirty_time_seconds: سیکنڈ میں ٹائم آؤٹ کی قدر۔

EXPIRE کمانڈ کے ذریعہ کئی اختیاری دلائل قبول کیے جاتے ہیں۔



NX: ٹائم آؤٹ ویلیو صرف اس صورت میں سیٹ کی جاتی ہے جب مخصوص کلید کی پہلے سے کوئی میعاد ختم نہ ہو۔

XX: جب مخصوص کلید کی موجودہ ٹائم آؤٹ ویلیو ہوتی ہے، تو نئی میعاد ختم ہو جاتی ہے۔

جی ٹی: اگر نئی ٹائم آؤٹ ویلیو موجودہ والی سے زیادہ ہے، تو نئی میعاد سیٹ ہو جاتی ہے۔

ایل ٹی: نئی ٹائم آؤٹ ویلیو سیٹ کی جاتی ہے اگر موجودہ والی نئی سے زیادہ ہے۔

سب سے اہم بات، EXPIRE کمانڈ مستقل وقت کی پیچیدگی پر کام کرتی ہے۔ اگر کمانڈ پر عمل درآمد کامیاب ہو جاتا ہے تو عدد 1 لوٹا دیا جاتا ہے۔ اگر آپریشن غلط دلائل یا غیر موجود کلیدوں کی وجہ سے ناکام ہو جاتا ہے تو، 0 واپس آ جاتا ہے۔

ہم ایکسپائری ٹائم سیٹ کرنے کے لیے ہیش پر EXPIRE کمانڈ استعمال کریں گے جیسا کہ درج ذیل سیکشن میں دکھایا گیا ہے۔

EXPIRE کمانڈ کا استعمال کرتے ہوئے Redis Hash کو ختم کریں۔

آئیے فرض کریں کہ فی صارف سیشن کی معلومات Redis ہیش میں محفوظ ہے۔ سیشن: آئی ڈی: 1000: صارف: 10۔ ہم HMSET کمانڈ کا استعمال کر سکتے ہیں Redis ہیش بنانے کے لیے ایک سے زیادہ فیلڈ ویلیو جوڑوں کے ساتھ حسب ذیل:

hmset سیشن:id: 1000 :user: 10 صارف نام 'جائے' کوکی 'جی ہاں' پاس ورڈ '389Ysu2'


آئیے HGETALL کمانڈ کا استعمال کرتے ہوئے تخلیق کردہ ہیش کا معائنہ کریں۔

hgetall سیشن:id: 1000 :user: 10



اس کے علاوہ، اگر صارف 60 سیکنڈ سے زیادہ وقت تک بیکار رہتا ہے تو سیشن 10 سیکنڈ کے بعد ختم ہو جاتا ہے۔ سیشن کی میعاد ختم ہونے والی ہیش کی میعاد ختم ہونے کا وقت مقرر کرکے حاصل کیا جاتا ہے جو سیشن کی معلومات کو اسٹور کرتا ہے۔

ہم EXPIRE کمانڈ کو اس طرح استعمال کر سکتے ہیں:

ختم سیشن:id: 1000 :user: 10 10


جیسا کہ ذکر کیا گیا ہے، ٹائم آؤٹ ویلیو 10 سیکنڈ پر سیٹ ہے۔


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

ttl سیشن:id: 1000 :user: 10



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


جیسا کہ -2 عددی جواب کی نشاندہی کی گئی ہے، ہیش موجود نہیں ہے۔

ایکسپائری ٹائم کے وجود کی بنیاد پر ٹائم آؤٹ سیٹ کریں۔

EXPIRE کمانڈ ایک مخصوص ہیش کے لیے ایکسپائری کی موجودگی کی بنیاد پر ایک نیا ٹائم آؤٹ سیٹ کرنے کے لیے NX اور XX دلائل کو قبول کرتی ہے۔ آئیے کے ساتھ ایک نیا ہیش بنائیں ٹائم آؤٹ نہیں چابی .

hmset noTimeOut نام 'پرکھ'


آئیے پچھلے ہیش پر ایک نئی میعاد مقرر کرنے کی کوشش کریں۔ مزید برآں، ہم XX دلیل کو EXPIRE کمانڈ میں بھی منتقل کرتے ہیں۔

کوئی ٹائم آؤٹ ختم نہیں ہوتا ہے۔ پندرہ ایکس ایکس


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


اگر ہم استعمال کرتے ہیں۔ این ایکس آپشن، ٹائم آؤٹ ویلیو 15 پر سیٹ ہے۔

کوئی ٹائم آؤٹ ختم نہیں ہوتا ہے۔ پندرہ این ایکس



EXPIRE کمانڈ انٹیجر 1 کا جواب لوٹاتا ہے جس کا مطلب ہے کہ ٹائم آؤٹ مناسب طریقے سے سیٹ کیا گیا ہے۔

موجودہ ٹائم آؤٹ ویلیو کی بنیاد پر ٹائم آؤٹ سیٹ کریں۔

GT اور LT آپشنز کو موجودہ ٹائم آؤٹ کی لمبائی کی بنیاد پر ہیش ایکسپائری ٹائم سیٹ کرنے کے لیے استعمال کیا جا سکتا ہے۔

آئیے ایک نیا ہیش بنائیں جس کا نام ہے۔ hashWithTimeout.

hmset hashWithTimeout field1 ویلیو1


اگلا، ہم نے ہیش کے لیے 200 سیکنڈ کا ایکسپائری ٹائم سیٹ کیا۔

hashWithTimeout کی میعاد ختم 200


آئیے ذیل میں جی ٹی آپشن کے ساتھ ہیش کے لیے 100 سیکنڈ کا نیا ٹائم آؤٹ سیٹ کرنے کی کوشش کریں:

hashWithTimeout کی میعاد ختم 100 جی ٹی


چونکہ GT آپشن کی وضاحت کی گئی ہے، EXPIRE کمانڈ چیک کرے گی کہ آیا نئی ٹائم آؤٹ ویلیو موجودہ والی سے زیادہ ہے اور نیا ایکسپائری ٹائم سیٹ کرے گی۔ اس مثال میں، نیا ٹائم آؤٹ موجودہ ٹائم آؤٹ سے زیادہ نہیں ہے۔ لہذا، کمانڈ نیا ختم ہونے کا وقت مقرر نہیں کرے گا اور 0 واپس آ جائے گا.


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

hashWithTimeout کی میعاد ختم 100 ایل ٹی


نتیجہ

مختصراً، Redis EXPIRE کمانڈ کا استعمال دی گئی کلید کے لیے TTL ویلیو سیٹ کرنے کے لیے کیا جاتا ہے۔ پہلے سے طے شدہ طور پر، Redis ہیش کیز کسی بھی ٹائم آؤٹ سے منسلک نہیں ہوتی ہیں جسے نان ولیٹائل کہا جاتا ہے۔ جیسا کہ زیر بحث آیا، EXPIRE کمانڈ Redis ہیش پر ٹائم آؤٹ ویلیو سیٹ کرنے کے لیے استعمال ہوتی ہے۔ عام طور پر، ہیش کو ریڈیس ڈیٹا اسٹور سے ٹائم آؤٹ ویلیو کے طور پر بیان کردہ وقت کی مقدار کے بعد حذف کر دیا جاتا ہے۔ جیسا کہ مثالوں میں دکھایا گیا ہے، EXPIRE کمانڈ کچھ اختیاری دلیلوں کو قبول کرتی ہے جیسے XX، NX، GT، اور LT کسی شرط کی بنیاد پر ہیش کی ایکسپائری سیٹ کرنے کے لیے۔