DECR واپس کریں۔

Decr Waps Kry



ریڈیس انٹیجر ہیرا پھیری

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


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







ڈی ای سی آر کمانڈ

DECR کمانڈ کو ایک نمبر ویلیو کو کم کرنے کے لیے متعارف کرایا گیا ہے جو ایک دی گئی کلید پر ایک ایک کرکے محفوظ کی جاتی ہے۔ یہ صرف سٹرنگ ویلیوز پر کام کرتا ہے جنہیں بیس-10 64 بٹ انٹیجر کے طور پر دکھایا جا سکتا ہے۔ ڈی ای سی آر کمانڈ نان سٹرنگ ویلیوز یا سٹرنگ ویلیوز کے لیے ایک خامی پھینکتی ہے جس کو انٹیجرز کے طور پر پیش نہیں کیا جا سکتا۔



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



DECR کلید


چابی: کلید جو سٹرنگ کی قدر رکھتی ہے۔





DECR کمانڈ کمی کے عمل کے بعد نتیجے میں دستخط شدہ عدد کو لوٹاتا ہے۔ اگر مخصوص کلید موجود نہیں ہے تو، کمانڈ قدر کو 0 پر سیٹ کرتی ہے اور پھر اسے ایک سے کم کرتی ہے۔ نیز، ایک خامی اس وقت پھینکی جاتی ہے جب قدر غیر سٹرنگ ہو یا اسے 64 بٹ پر دستخط شدہ عدد کے طور پر پیش نہیں کیا جا سکتا۔ یہ کمانڈ مستقل وقت کی پیچیدگی (O(1)) پر کام کرتی ہے جو کہ انتہائی تیز ہے۔

کیس کا استعمال کریں - آن لائن گیم میں پلیئر کی صحت کو کم کریں۔

آئیے ایک آن لائن گیم فرض کریں جہاں میڈی پیک کے سامنے آنے پر ہر کھلاڑی کی صحت میں ایک سے اضافہ ہوتا ہے۔ اسی طرح، اگر کھلاڑی گر جائے یا دوسرے کھلاڑی سے ٹکرائے تو صحت ایک سے کم ہو جاتی ہے۔



کسی کھلاڑی کی صحت کو ذخیرہ کرنے کے لیے مثالی امیدوار Redis سٹرنگ کی قسم ہے جہاں ہم صحت کو ایک عدد کے طور پر محفوظ کر سکتے ہیں۔ آئیے ایک کلید بنائیں health:playerID:1 اور اس کی قدر کو 10 پر سیٹ کریں۔ ہم SET کمانڈ کو اس طرح استعمال کر سکتے ہیں:

سیٹ health:playerID: 1 10



ہم پر ذخیرہ شدہ قدر کی تصدیق کے لیے GET کمانڈ استعمال کر سکتے ہیں۔ health:playerID:1۔

صحت حاصل کریں:playerID: 1



کہتے ہیں کہ آئی ڈی 1 والا کھلاڑی متاثر ہو جاتا ہے اور اس کی صحت ایک سے کم ہو جاتی ہے۔ DECR کمانڈ کو اس طرح استعمال کیا جا سکتا ہے:

decr health:playerID: 1


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


اس کے علاوہ، ہم کلید میں ذخیرہ شدہ قدر کا معائنہ کر سکتے ہیں۔ health:playerID:1 GET کمانڈ کے ساتھ۔

صحت حاصل کریں:playerID: 1



جیسا کہ توقع تھی، قدر میں ایک کمی واقع ہوئی۔

DECR آپریٹر منفی نمبروں کے ساتھ بھی درست ہے۔ آئیے کلید پر ایک نئی منفی عددی قدر ذخیرہ کرتے ہیں۔ منفی: قدر 1 .

سیٹ منفی: قدر 1 -3


ہم مندرجہ ذیل GET کمانڈ کا استعمال کرتے ہوئے قدر کا معائنہ کر سکتے ہیں:

منفی حاصل کریں: قدر 1



درج ذیل کمانڈ سے پتہ چلتا ہے کہ کلید پر DECR کمانڈ کیسے استعمال ہوتی ہے۔ منفی:قدر1:

decr منفی: قدر 1


غیر عددی اقدار پر DECR کمانڈ

کچھ ایج کیسز ایسے ہوتے ہیں جب ہم ریڈیس کلید پر DECR کمانڈ استعمال کرنے کی کوشش کرتے ہیں جس میں نان سٹرنگ ڈیٹا ٹائپ یا ایسی سٹرنگ ہوتی ہے جس کو انٹیجر کے طور پر پیش نہیں کیا جا سکتا۔ DECR کمانڈ ان معاملات میں ایک غلطی پھینکتی ہے جیسا کہ درج ذیل مثال میں دکھایا گیا ہے۔

سیٹ notAnIntergerVal ہیلو


'ہیلو' ایک ایسا متن ہے جسے دستخط شدہ عدد میں تبدیل نہیں کیا جا سکتا۔ لہذا، DECR کمانڈ ایک غلطی پیدا کرتی ہے اگر ہم اسے اس کلید کے خلاف کہتے ہیں۔

decr notAnIntergerVal


غیر موجود کلیدوں پر DECR کمانڈ

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

decr غیر موجود کلید


جیسا کہ توقع کی گئی ہے، آؤٹ پٹ -1 ہے۔


مجموعی طور پر، DECR کمانڈ کم لیٹنسی ایپلی کیشنز میں کاؤنٹرز کو لاگو کرنے کے لیے بہت مفید ہے۔

نتیجہ

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