إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تتناول هذه المقالة كيفية تشخيص فقدان البيانات الجزئي أو الكامل الذي يحدث في ذاكرة التخزين المؤقت Azure ل Redis.
مهم
أعلن Azure Cache for Redis عن الجدول الزمني للاستبعاد لجميع وحدات SKU. نوصي بنقل مثيلات Azure Cache for Redis الحالية إلى Azure Managed Redis في أقرب وقت ممكن.
لمزيد من التفاصيل حول التقاعد:
فقدان جزئي للمفتاح
لا تحذف ذاكرة التخزين المؤقت Azure ل Redis المفاتيح عشوائيا بعد تخزينها في الذاكرة، ولكنها تزيل المفاتيح استجابة لسياسات انتهاء الصلاحية ونهج الإخلاء وأوامر حذف المفاتيح الصريحة. يمكنك تشغيل هذه الأوامر على وحدة التحكم أو من خلال Redis CLI.
قد لا تتوفر المفاتيح المكتوبة إلى العقدة الأساسية في مثيل Premium أو Standard Azure Redis على نسخة متماثلة على الفور. يتم نسخ البيانات من النسخة المتماثلة الأساسية إلى النسخة المتماثلة بطريقة غير متزامنة وغير محظورة.
إذا اختفت بعض المفاتيح من ذاكرة التخزين المؤقت، فتحقق من الأسباب المحتملة التالية:
| السبب | الوصف |
|---|---|
| انتهاء صلاحية المفتاح | تمت إزالة المفاتيح بسبب المهلات المعينة عليها. |
| إخلاء المفتاح | تمت إزالة المفاتيح تحت ضغط الذاكرة. |
| حذف المفتاح | تمت إزالة المفاتيح بواسطة أوامر حذف صريحة. |
| النسخ المتماثل غير المتزامن | لم تكن المفاتيح متوفرة على نسخة متماثلة بسبب تأخير النسخ المتماثل للبيانات. |
انتهاء صلاحية المفتاح
يقوم Azure Cache for Redis بإزالة مفتاح تلقائيا إذا تم تعيين مهلة للمفتاح وتمرير تلك الفترة. لمزيد من المعلومات حول انتهاء صلاحية مفتاح Redis، راجع وثائق أمر Redis EXPIRE . يمكن أيضا تعيين قيم المهلة باستخدام أوامر SETوSETEX و GETSET وغيرها *STORE .
للحصول على إحصائيات حول عدد المفاتيح التي انتهت صلاحيتها، استخدم الأمر INFO . يعرض قسم Stats العدد الإجمالي للمفاتيح منتهية الصلاحية.
Keyspace يوفر القسم المزيد من المعلومات حول عدد المفاتيح ذات المهلات ومتوسط قيمة المهلة.
# Stats
expired_keys:46583
# Keyspace
db0:keys=3450,expires=2,avg_ttl=91861015336
إخلاء المفتاح
يتطلب Azure Cache for Redis مساحة ذاكرة لتخزين البيانات وإزالة المفاتيح لتحرير الذاكرة المتوفرة عند الضرورة.
used_memory عندما تقترب القيم أو used_memory_rss من الإعداد الذي تم تكوينهmaxmemory، يبدأ Azure Redis في إخلاء المفاتيح من الذاكرة استنادا إلى نهج ذاكرة التخزين المؤقت.
يمكنك مراقبة عدد المفاتيح التي تم إخلاؤها باستخدام الأمر INFO .
# Stats
evicted_keys:13224
حذف المفتاح
يمكن لعملاء Redis إصدار أوامر Redis DEL أو HDEL لإزالة المفاتيح بشكل صريح من Azure Redis. يمكنك تتبع عدد عمليات الحذف باستخدام الأمر INFO. إذا DEL تم استدعاء أو HDEL أوامر، يتم سردها في Commandstats القسم .
# Commandstats
cmdstat_del:calls=2,usec=90,usec_per_call=45.00
cmdstat_hdel:calls=1,usec=47,usec_per_call=47.00
النسخ المتماثل غير المتزامن
يتم تكوين Azure Cache من المستوى القياسي أو المتميز لمثيلات Redis مع عقدة أساسية ونسخة متماثلة واحدة على الأقل. يتم نسخ البيانات من النسخة الأساسية إلى النسخة المتماثلة بشكل غير متزامن باستخدام عملية في الخلفية.
يصف النسخ المتماثل ل Redis على موقع Redis كيفية عمل النسخ المتماثل لبيانات Redis بشكل عام. بالنسبة للسيناريوهات التي يكتب فيها العملاء إلى Redis بشكل متكرر، يمكن أن يحدث فقدان جزئي للبيانات لأن النسخ المتماثل غير مصمم ليكون فوريا.
على سبيل المثال، إذا انخفض الأساسي بعد أن يكتب العميل مفتاحا له، ولكن قبل أن يكون لعملية الخلفية فرصة لإرسال هذا المفتاح إلى النسخة المتماثلة، يتم فقدان المفتاح عند استيلاء النسخة المتماثلة على أنها أساسية جديدة.
فقدان المفتاح الكامل
إذا اختفت معظم المفاتيح أو جميعها من ذاكرة التخزين المؤقت، فتحقق من الأسباب المحتملة التالية:
| السبب | الوصف |
|---|---|
| مسح المفتاح | تمت إزالة المفاتيح يدويا. |
| تحديد قاعدة بيانات غير صحيح | تم تعيين Azure Redis لاستخدام قاعدة بيانات غير افتراضية. |
| فشل مثيل Redis | خادم Redis غير متاح. |
مسح المفتاح
يمكن لعملاء Azure Redis استدعاء الأمر Redis FLUSHDB لإزالة جميع المفاتيح في قاعدة بيانات واحدة أو FLUSHALL لإزالة جميع المفاتيح من جميع قواعد البيانات في ذاكرة التخزين المؤقت Redis. لمعرفة ما إذا تم مسح المفاتيح، استخدم الأمر INFO .
Commandstats يوضح المقطع ما إذا كان قد تم استدعاء أي من الأمرينFLUSH.
# Commandstats
cmdstat_flushall:calls=2,usec=112,usec_per_call=56.00
cmdstat_flushdb:calls=1,usec=110,usec_per_call=52.00
تحديد قاعدة بيانات غير صحيح
كل قاعدة بيانات هي وحدة منفصلة منطقيًا وتحتوي على مجموعة بيانات مختلفة. يستخدم Azure Cache for Redis قاعدة البيانات db0 افتراضيًا. إذا قمت بالتبديل إلى قاعدة بيانات أخرى مثل db1 وحاولت قراءة المفاتيح منها، فلن يعثر Azure Redis عليها. استخدم الأمر Redis SELECT للبحث عن مفاتيح في قواعد البيانات الأخرى المتوفرة.
فشل مثيل Redis
يحتفظ Redis بالبيانات في الذاكرة على الأجهزة الفعلية أو الظاهرية (VMs) التي تستضيف ذاكرة التخزين المؤقت Redis. يتم تشغيل Azure Cache من المستوى الأساسي لمثيل Redis على جهاز ظاهري واحد فقط (VM). إذا تعطل هذا الجهاز الظاهري، فستفقد جميع البيانات التي قمت بتخزينها في ذاكرة التخزين المؤقت.
توفر ذاكرة التخزين المؤقت في المستويين Standard وPremium مرونة أعلى ضد فقدان البيانات باستخدام جهازين ظاهريين في تكوين منسوخ نسخا متماثلا. عندما تفشل العقدة الأساسية في ذاكرة التخزين المؤقت هذه، تتولى العقدة المتماثلة خدمة البيانات تلقائيًا.
توجد هذه الأجهزة الظاهرية في مجالات منفصلة للأخطاء والتحديثات، لتقليل فرصة عدم توفر كلا الجهازين الظاهريين في وقت واحد. إذا حدث انقطاع كبير في مركز البيانات، ومع ذلك، يمكن أن يتعطل كلا الجهازين الظاهريين. في هذه الحالات النادرة، يتم فقدان بياناتك. ضع في اعتبارك استخدام استمرارية البياناتوالنسخ المتماثل الجغرافي لتحسين حماية البيانات من فشل البنية الأساسية.