عودة DECR

Wdt Decr



معالجة عدد صحيح من Redis

نوع السلسلة هو أكثر أنواع البيانات الأساسية التي يقدمها Redis. سلاسل Redis قادرة على تخزين النصوص وكائنات JSON المتسلسلة والصور والصوت وحتى القيم الرقمية. في هذا الدليل ، سنركز على القيم العددية ومعالجة الأعداد الصحيحة. لا يدعم Redis أنواع بيانات الأعداد الصحيحة المنفصلة للاحتفاظ بالبيانات الرقمية. إذا احتوى مفتاح Redis على سلسلة يمكن تمثيلها كعدد صحيح ، يمكن لـ Redis تفسير قيم الأرقام على أنها أعداد صحيحة ذات إشارة 64 بت ذات الأساس 10.


يعد التلاعب بالأرقام ميزة مفيدة للغاية في أي قاعدة بيانات. يقدم Redis العديد من العمليات المفيدة للعمل على أنواع الأعداد الصحيحة مثل INCR ، DECR ، INCRBY ، إلخ. في هذا الدليل ، يتم شرح أمر DECR الذي يعمل على أنواع الأعداد الصحيحة بالتفصيل.







قيادة DECR

يتم تقديم الأمر DECR لتقليل قيمة رقمية مخزنة في مفتاح معين بواحد. يعمل هذا فقط على قيم السلسلة التي يمكن تمثيلها على أنها عدد صحيح 64 بت أساس 10. يُلقي الأمر DECR خطأً للقيم غير السلسلة أو قيم السلسلة التي لا يمكن تمثيلها كأعداد صحيحة.



ما يلي هو بناء جملة الأمر DECR:



مفتاح DECR


مفتاح: المفتاح الذي يحمل قيمة السلسلة.





يُرجع الأمر DECR العدد الصحيح المُوقَّع الناتج بعد عملية الإنقاص. في حالة عدم وجود المفتاح المحدد ، يقوم الأمر بتعيين القيمة إلى 0 ثم تقليلها بمقدار واحد. أيضًا ، يتم طرح خطأ عندما تكون القيمة ليست سلسلة أو لا يمكن تمثيلها كعدد صحيح موقعة 64 بت. يعمل هذا الأمر على تعقيد زمني ثابت (O (1)) وهو سريع للغاية.

حالة الاستخدام - تقليل صحة اللاعب في لعبة عبر الإنترنت

لنفترض لعبة على الإنترنت حيث يتم زيادة صحة كل لاعب بواحد عندما يتم الكشف عن حزمة متوسطة. وبالمثل ، تنخفض الصحة بمقدار واحد إذا سقط اللاعب أو أصيب من قبل لاعب آخر.



المرشح المثالي لتخزين صحة اللاعب هو نوع سلسلة Redis حيث يمكننا تخزين الصحة كعدد صحيح. لنقم بإنشاء مفتاح الصحة: ​​playerID: 1 وتعيين قيمته على 10. يمكننا استخدام الأمر SET على النحو التالي:

تعيين الصحة: ​​playerID: 1 10



يمكننا استخدام الأمر GET للتحقق من القيمة المخزنة في الصحة: ​​playerID: 1.

الحصول على الصحة: ​​playerID: 1



لنفترض أن اللاعب الذي يحمل المعرّف 1 تعرض للضرب ويجب أن تنخفض صحته بمقدار واحد. يمكن استخدام الأمر DECR على النحو التالي:

صحة decr: playerID: 1


كما هو متوقع ، يقوم الأمر DECR بطباعة القيمة المحدثة بعد عملية الإنقاص كما هو موضح في الشكل التالي:


أيضًا ، يمكننا فحص القيمة المخزنة عند المفتاح الصحة: ​​playerID: 1 باستخدام الأمر GET.

الحصول على الصحة: ​​playerID: 1



كما هو متوقع ، انخفضت القيمة بمقدار واحد.

عامل التشغيل DECR صالح مع أرقام سالبة أيضًا. دعونا نخزن قيمة رقمية سالبة جديدة في المفتاح سلبي: القيمة 1 .

تعيين سلبي: القيمة 1 -3


يمكننا فحص القيمة باستخدام الأمر GET على النحو التالي:

الحصول على سلبي: value1



يوضح الأمر التالي كيفية استخدام الأمر DECR على المفتاح سلبي: القيمة 1:

decr سلبي: value1


أمر DECR للقيم غير الصحيحة

هناك بعض حالات الحافة عندما نحاول استخدام الأمر DECR على مفتاح Redis الذي يحتوي على نوع بيانات غير سلسلة أو سلسلة لا يمكن تمثيلها كعدد صحيح. يقوم الأمر DECR بإلقاء خطأ في تلك الحالات كما هو موضح في المثال التالي:

تعيين notAnIntergerVal مرحبًا


'مرحبًا' هو نص لا يمكن تحويله إلى عدد صحيح بعلامة. لذا ، فإن الأمر DECR يثير خطأ إذا قمنا باستدعائه ضد هذا المفتاح.

decr notAnIntergerVal


أمر DECR على المفاتيح غير الموجودة

في بعض الحالات ، يمكنك استدعاء أمر DECR على مفتاح غير موجود في مخزن بيانات Redis. لذلك ، ينشئ الأمر المفتاح المحدد ويضبط قيمته على عدد صحيح 0. وفي نفس الوقت ، تنخفض القيمة بمقدار واحد.

decr مفتاح غير موجود


كما هو متوقع ، يكون الناتج -1.


بشكل عام ، يعد أمر DECR مفيدًا جدًا لتنفيذ العدادات في تطبيقات زمن الوصول المنخفض.

استنتاج

باختصار ، DECR هو أحد الأوامر التي تعمل على القيم الرقمية المخزنة في مفتاح Redis معين. لا يدعم Redis نوع بيانات عدد صحيح منفصل. لذلك ، يتم استخدام نوع السلسلة للاحتفاظ بالقيم العددية أيضًا. كما تم فحصه ، إذا كان من الممكن تمثيل قيمة السلسلة كعدد صحيح مُوقَّع 64 بت ، فيمكن استخدام الأمر DECR لتقليل قيمتها. الأهم من ذلك ، أنها تعمل على التعقيد الزمني المستمر. أيضًا ، يتم استخدام الأمر DECR على نطاق واسع لتنفيذ العدادات.