كيفية حل مشاكل في ريديس

المقدمة

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

كيفية استخدام هذا الدليل

تم كتابة هذا الدليل كورقة مرجعية مع أمثلة مستقلة. نحن نشجعك على الانتقال إلى أي قسم يكون ذا صلة بالمهمة التي تحاول إتمامها.

تم اختبار الأوامر المعروضة في هذا الدليل على خادم Ubuntu 22.04 يعمل بنسخة Redis 6.0.16. لإعداد بيئة مشابهة، يمكنك اتباع الخطوة 1 في دليلنا عن كيفية تثبيت وتأمين Redis على Ubuntu 22.04. سنقوم بتوضيح كيفية سلوك هذه الأوامر عن طريق تشغيلها باستخدام redis-cli، واجهة سطر أوامر Redis. إذا كنت تستخدم واجهة Redis مختلفة — مثل Redli، على سبيل المثال — قد تختلف النتيجة الدقيقة لبعض الأوامر.

بدلاً من ذلك، يمكنك توفير نسخة مديرة لقاعدة بيانات Redis لاختبار هذه الأوامر، ولكن اعتمادًا على مستوى التحكم المسموح به من قبل مزود خدمة قاعدة البيانات الخاص بك، قد لا تعمل بعض الأوامر في هذا الدليل كما هو موضح. لتوفير قاعدة بيانات مُدارة من DigitalOcean، اتبع توثيق منتج Managed Databases لدينا. بعد ذلك، يجب عليك إما تثبيت Redli أو إعداد نفق TLS من أجل الاتصال بقاعدة البيانات المدارة عبر TLS.

memory usage يخبرك عن كمية الذاكرة التي يتم استخدامها حاليًا بواسطة مفتاح واحد. يأخذ اسم المفتاح كوسيطة ويخرج عدد البايتات التي يستخدمها. أولاً، قم بتعيين متغير مثالي:

  1. set key_meaningOfLife "Food"

بعد ذلك، قم بفحص الذاكرة باستخدام memory usage:

  1. memory usage key_meaningOfLife
Output
(integer) 88

لفهم أكثر عامة حول كيفية استخدام خادم Redis لذاكرته، يمكنك تشغيل أمر memory stats:

  1. memory stats

يقوم هذا الأمر بإخراج مجموعة من المقاييس المتعلقة بالذاكرة وقيمها. التالي هي المقاييس التي يقوم بالإبلاغ عنها memory stats:

  • peak.allocated: أقصى عدد من البايت المستهلكة بواسطة Redis
  • total.allocated: العدد الإجمالي للبايت المخصصة بواسطة Redis
  • startup.allocated: العدد الابتدائي من البايت المستهلكة بواسطة Redis عند التشغيل
  • replication.backlog: حجم سجل التكرار ، بالبايت
  • clients.slaves: الحجم الإجمالي لجميع التكاليف الزائدة للنسخةالاحتياطية ، وهذا يعني الإخراج والمخرجات وسياقات الاتصال
  • clients.normal: الحجم الإجمالي لجميع التكاليف الإضافية للعميل
  • aof.buffer: الحجم الإجمالي لمخزن الملف الذي يتم إلحاقه وإعادة كتابةالملف بطريقة الإلحاق
  • db.0: التكاليف الزائدة للقواميس الرئيسية وانتهاء الصلاحية لكل قاعدة بيانات قيد الاستخدام على الخادم ، مُبلَغَةً بالبايت
  • overhead.total: مجموع جميع التكاليف المستخدمة لإدارة مساحة مفاتيح Redis
  • keys.count: العدد الإجمالي للمفاتيح المخزنة في جميع قواعد البيانات على الخادم
  • keys.bytes-per-key: نسبة استخدام الذاكرة الصافية للخادم وkeys.count
  • dataset.bytes: حجم المجموعة البيانية ، بالبايت
  • dataset.percentage: النسبة المئوية لاستخدام الذاكرة الصافية لـ Redis التي تستغرقها dataset.bytes
  • peak.percentage: النسبة المئوية لـ peak.allocated المأخوذة من total.allocated
  • التجزئة: النسبة بين كمية الذاكرة المستخدمة حاليًا مقسومة على الذاكرة الفعلية التي يستخدمها Redis بالفعل

memory malloc-stats يوفر تقريرًا داخليًا للإحصاءات من جيمالوك، مكون تخصيص الذاكرة المستخدم بواسطة Redis على أنظمة Linux:

  1. memory malloc-stats

إذا بدا لك أنك تواجه مشاكل تتعلق بالذاكرة، ولكن تحليل ناتج الأوامر السابقة يثبت عدم فائدته، يمكنك محاولة تشغيل memory doctor:

  1. memory doctor

سيقوم هذا الميزة بإخراج أي مشاكل في استهلاك الذاكرة التي يمكنها العثور عليها واقتراح حلول محتملة.

الحصول على معلومات عامة حول مثيل Redis الخاص بك

A debugging command that isn’t directly related to memory management is monitor. This command allows you to review a constant stream of every command processed by the Redis server:

  1. monitor
Output
OK 1566157213.896437 [0 127.0.0.1:47740] "auth" "foobared" 1566157215.870306 [0 127.0.0.1:47740] "set" "key_1" "878"

أمر آخر مفيد لتصحيح الأخطاء هو info، الذي يعيد عدة كتل من المعلومات والإحصائيات حول الخادم:

  1. info
Output
# Server redis_version:6.0.16 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:a3fdef44459b3ad6 redis_mode:standalone os:Linux 5.15.0-41-generic x86_64 . . .

يعيد هذا الأمر الكثير من المعلومات. إذا كنت ترغب في إرجاع كتلة معلومات واحدة فقط، يمكنك تحديدها كوسيطة لـ info:

  1. info CPU
Output
# CPU used_cpu_sys:173.16 used_cpu_user:70.89 used_cpu_sys_children:0.01 used_cpu_user_children:0.04

لاحظ أن المعلومات المعادة بواسطة الأمر info ستعتمد على الإصدار الذي تستخدمه من Redis.

استخدام الأمر keys

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

  1. keys pattern

تدعم المتغيرات التي تتبع نمط الجلوب الاتي:

  • ؟ هو رمز بدل يمثل أي حرف فردي، لذا s؟mmy يتناسب مع sammy، sommy، و sqmmy
  • * هو رمز بدل يمثل أي عدد من الأحرف، بما في ذلك عدم وجود أي أحرف على الإطلاق، لذا sa*y يتناسب مع sammy، say، sammmmmmy، و salmony
  • يمكنك تحديد حرفين أو أكثر يمكن أن يتضمنهما النمط عن طريق وضعهما في قوسين، لذا s[ai]mmy سيتناسب مع sammy و simmy، ولكن لا يتناسب مع summy
  • لتعيين بديل يتجاهل حرفًا أو أكثر، ضعهم بين قوسين وسبقهم بعلامة الرف (carrot) (^)، لذا s[^oi]mmy سيتناسب مع sammy و sxmmy، ولكن لا يتناسب مع sommy أو simmy
  • لتعيين بديل يتضمن مجموعة من الحروف، افصل بين بداية ونهاية النطاق بواسطة إشارة الشرطة وضعها في قوسين، لذا s[a-o]mmy سيتناسب مع sammy، skmmy، و sommy، ولكن لا يتناسب مع srmmy

تحذير: يحذر توثيق Redis من أنه يجب تجنب استخدام الأوامر تقريباً في بيئة الإنتاج لأن ذلك قد يؤدي إلى تأثير سلبي كبير على الأداء.

الختام

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

لمزيد من المعلومات حول أوامر Redis، تفقد سلسلة الدروس الخاصة بنا حول كيفية إدارة قاعدة بيانات Redis.

Source:
https://www.digitalocean.com/community/cheatsheets/how-to-troubleshoot-issues-in-redis