ما هو الاسم الكامل لـ Redis RDB؟ وضع تشغيل استمرارية بيانات ذاكرة Redis RDB

الاسم الكامل لـ RDB هوRedis database.

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

ما هو الاسم الكامل لـ Redis RDB؟ وضع تشغيل استمرارية بيانات ذاكرة Redis RDB

تعتمد جميع عمليات Redis في البداية على الذاكرة ، وبالتالي فإن الأداء مرتفع جدًا ، ولكن بمجرد إغلاق البرنامج ، يتم فقد البيانات.

لذلك ، نحتاج إلى كتابة البيانات الموجودة في الذاكرة على القرص في فترات زمنية محددة ، وهي لقطة في المصطلحات.

عند الاستعادة ، تتم كتابة ملف اللقطة مباشرة في الذاكرة.

هذا أيضًا أحد الاختلافات الرئيسية بين Redis و Memcached ، لأن Memcached ليس لديه القدرة على الاستمرار.

لاستمرار بيانات ذاكرة Redis ، يوفر لنا Redis الطرق التالية:

  • طريقة اللقطة (RDB ، Redis DataBase): كتابة بيانات الذاكرة على القرص في شكل ثنائي في لحظة معينة ؛
  • إلحاق ملف فقط (AOF ، إلحاق ملف فقط) ، وتسجيل جميع أوامر التشغيل ، وإلحاق الملف في شكل نصي ؛
  • الثبات الهجين ، طريقة جديدة بعد Redis 4.0 ، تجمع الثبات الهجين بين مزايا RDB و AOF.عند الكتابة ، اكتب أولاً البيانات الحالية إلى بداية الملف في شكل RDB ، ثم احفظ أوامر التشغيل اللاحقة في الملف في شكل AOF ، والذي لا يضمن سرعة إعادة تشغيل Redis فحسب ، بل يقلل أيضًا خطر فقدان البيانات.

لأن كل مخطط استمرار له سيناريوهات استخدام محددة.

وضع تشغيل استمرارية بيانات ذاكرة Redis RDB

  • RDB (Redis DataBase) هي عملية كتابة لقطة ذاكرة (لقطة) في لحظة معينة على القرص في شكل ثنائي.
  • لقطات الذاكرة هي ما قلناه أعلاه.يشير إلى سجل حالة البيانات في الذاكرة في لحظة معينة.
  • هذا مشابه لالتقاط صورة. عندما تلتقط صورة لصديق ، يمكن للصورة أن تسجل على الفور جميع صور الصديق.
  • هناك طريقتان لتشغيل RDB: الأولى هي التشغيل اليدوي ، والأخرى هي التشغيل التلقائي.

قم بتشغيل RDB يدويًا

توجد عمليتان لتشغيل المثابرة يدويًا:saveوbgsave.

الفرق الرئيسي بينهما هو ما إذا كان سيتم حظر تنفيذ سلسلة Redis الرئيسية أم لا.

1. حفظ الأمر

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

127.0.0.1:6379> save
OK
127.0.0.1:6379>

تظهر عملية تنفيذ الأمر في الشكل 

2. bgsave الأمر

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

مع منع العملية برمتهاsaveمقارنة بالأمرbgsaveمن الواضح أن الأمر أكثر ملاءمة لنا لاستخدامه.

127.0.0.1:6379> bgsave
Background Saving started # 提示开始后台保存 
127.0.0.1:6379>

تشغيل RDB تلقائيًا

بعد التحدث عن التشغيل اليدوي ، دعنا نلقي نظرة على التشغيل التلقائي.يمكننا تكوين شروط التشغيل التلقائي في ملف التكوين.

1. حفظ مليون

  • save mn يعني أنه في غضون m ثانية ، إذا تغيرت مفاتيح n ، يتم تشغيل الثبات تلقائيًا.يمكن العثور على المعلمتين m و n في ملف تكوين Redis.
  • على سبيل المثال ، حفظ 60 1 يعني أنه في غضون 60 ثانية ، طالما يتغير مفتاح واحد ، سيتم تشغيل استمرار RDB.
  • جوهر التشغيل التلقائي للثبات هو أنه إذا تم استيفاء شروط المشغل المحددة ، فسيقوم Redis تلقائيًا بتنفيذ الأمر bgsave مرة واحدة.

ملاحظة: عند تعيين أوامر حفظ متعددة ، فإن أي شرط واحد سيؤدي إلى استمرار.

على سبيل المثال ، قمنا بتعيين أمري save mn التاليين:

save 60 10
save 600 20
  • عندما تتغير قيمة مفتاح Redis 60 مرات في غضون 10 ثانية ، سيتم تشغيل الثبات ؛
  • إذا تغير مفتاح Redis في غضون 60 ثانية ، وإذا تغيرت القيمة أقل من 10 مرات ، فسيحدد Redis ما إذا كان مفتاح Redis قد تم تعديله 600 مرة على الأقل خلال 20 ثانية ، وإذا كان الأمر كذلك ، فقم بتشغيل المثابرة.

2. Flushall

  • يتم استخدام الأمر flushall لمسح قاعدة بيانات Redis.
  • يجب استخدامه بحذر في بيئة الإنتاج.
  • عندما ينفذ Redis الأمر flushall ، فإنه يقوم بتشغيل المثابرة التلقائية ويمسح ملفات RDB.

3. مشغل تزامن السيد والعبد

في النسخ المتماثل لـ Redis master-slave ، عندما تقوم العقدة التابعة بعملية نسخ متماثل كاملة ، ستقوم العقدة الرئيسية بتنفيذ الأمر bgsave لإرسال ملف RDB إلى العقدة التابعة. تؤدي هذه العملية تلقائيًا إلى استمرار Redis.

يمكن لـ Redis الاستعلام عن معلمات التكوين الحالية من خلال الأوامر.

تنسيق أمر الاستعلام هو:config get xxx

على سبيل المثال ، إذا كنت تريد الحصول على إعداد اسم التخزين لملف RDB ، فيمكنك استخدام config get dbfilename .

تأثير التنفيذ على النحو التالي:

127.0.0.1:6379> config get dbfilename
1) "dbfilename"
2) "dump.rdb"

نظرًا لأن خادم Redis سيتم حظره عند تحميل ملف RDB حتى اكتمال التحميل ، فقد يتسبب ذلك في وقت طويل ولا يمكن الوصول إلى موقع الويب.

إذا كنت تريد حذف ملف RDB cache file dump.rdb من Redis يدويًا ، فيمكنك استخدام الأمر التالي للعثور على مسار تخزين ملف dump.rdb ▼

find / -name dump.rdb
  • بعد ذلك ، احذف ملف ذاكرة التخزين المؤقت dump.rdb يدويًا عبر SSH.

يعين Redis تكوين RDB

فيما يتعلق بتعيين تكوين RDB ، يمكنك استخدام الطريقتين التاليتين:

  1. تعديل ملف تكوين Redis يدويًا
  2. استخدم إعدادات سطر الأوامر ، config set dir "/ usr / data" هو أمر التخزين لتعديل ملف RDB

ملاحظة: يمكن الحصول على التكوين في redis.conf من خلال config get xxx وتعديله من خلال قيمة مجموعة التكوين xxx ، وطريقة تعديل ملف تكوين Redis يدويًا تكون فعالة عالميًا ، أي أن المعلمات التي تم تعيينها عن طريق إعادة تشغيل خادم Redis لن سيتم فقده ، ولكن تم تعديله باستخدام الأمر ، فسيتم فقده بعد إعادة تشغيل Redis.

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

استعادة ملف RDB

عند بدء تشغيل خادم Redis ، إذا كان ملف RDB dump.rdb موجودًا في دليل جذر Redis ، فسيقوم Redis تلقائيًا بتحميل ملف RDB لاستعادة البيانات الدائمة.

إذا لم يكن هناك ملف dump.rdb في الدليل الجذر ، فالرجاء نقل ملف dump.rdb إلى الدليل الجذر لـ Redis أولاً.

بالطبع ، هناك معلومات تسجيل عند بدء تشغيل Redis ، والتي ستظهر ما إذا كان ملف RDB قد تم تحميله أم لا.

يقوم خادم Redis بحظر أثناء تحميل ملف RDB حتى يكتمل التحميل.

نحن نعلم الآن أن استمرار RDB ينقسم إلى طريقتين: التشغيل اليدوي والتشغيل التلقائي:

  1. ميزته هي أن ملف التخزين صغير وأن استعادة البيانات تكون أسرع عند بدء Redis.
  2. الجانب السلبي هو أن هناك خطر فقدان البيانات.

استعادة ملفات RDB بسيطة جدًا أيضًا ، فقط ضع ملفات RDB في الدليل الجذر لـ Redis ، وسيقوم Redis تلقائيًا بتحميل البيانات واستعادتها عند بدء التشغيل.

إيجابيات وسلبيات RDB

1) مزايا RDB

محتوى RDB عبارة عن بيانات ثنائية ، ويحتل ذاكرة أقل ، وهو أكثر إحكاما ، وهو أكثر ملاءمة كملف نسخ احتياطي ؛

يعد RDB مفيدًا جدًا للتعافي من الكوارث ، فهو ملف مضغوط يمكن نقله إلى خادم بعيد بشكل أسرع لاستعادة خدمة Redis ؛

يمكن لـ RDB تحسين سرعة Redis بشكل كبير ، لأن عملية Redis الرئيسية ستؤدي إلى تفرع عملية فرعية لاستمرار البيانات على القرص.

لا تؤدي عملية Redis الرئيسية عمليات مثل إدخال / إخراج القرص؛

مقارنة بملفات تنسيق AOF ، تتم إعادة تشغيل ملفات RDB بشكل أسرع.

2) عيوب RDB

نظرًا لأن RDB لا يمكنه حفظ البيانات إلا في فترة زمنية معينة ، إذا تم إنهاء خدمة Redis عن طريق الخطأ في المنتصف ، فستفقد بيانات Redis لفترة من الوقت ؛

عملية يتطلب فيها RDB تفرعًا متكررًا لحفظه على القرص باستخدام الإدخال الفرعي.

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

بالطبع ، يمكننا أيضًا تعطيل المثابرة لتحسين كفاءة تنفيذ Redis.

إذا لم تكن حساسًا لفقدان البيانات ، يمكنك القيام بذلك عندما يتصل العميل config set save "" أمر لتعطيل استمرار Redis.

redis.conf، إذا كان فيsaveقم بالتعليق على جميع التكوينات في البداية ، وسيتم أيضًا تعطيل الاستمرار ، ولكن هذا لا يتم بشكل عام.

مدونة Hope Chen Weiliang ( https://www.chenweiliang.com/ ) شارك "ما هو الاسم الكامل لـ Redis RDB؟ وضع تشغيل ثبات البيانات في الذاكرة Redis RDB ، والذي سيساعدك.

مرحبا بكم في مشاركة رابط هذه المقالة:https://www.chenweiliang.com/cwl-26677.html

مرحبًا بك في قناة Telegram الخاصة بمدونة Chen Weiliang للحصول على آخر التحديثات!

🔔 كن أول من يحصل على "دليل استخدام أداة الذكاء الاصطناعي لتسويق محتوى ChatGPT" في الدليل العلوي للقناة! 🌟
📚 يحتوي هذا الدليل على قيمة كبيرة، 🌟هذه فرصة نادرة، لا تفوتها! ⏰⌛💨
شارك و اعجبك اذا اردت
مشاركتك وإعجاباتك هي دافعنا المستمر!

 

发表 评论

لن يتم نشر عنوان بريدك الإلكتروني. 必填 项 已 用 * 标注

انتقل إلى أعلى