ابدأ الآن

كيف تنسخ حاوية Docker لـRedis احتياطيًا (2026)

أتريد نسخة Redis تُستعاد فعلًا؟ فرّغها بالأمر `redis-cli SAVE # then capture the resulting dump.rdb` من داخل الحاوية بدل نسخ /data. يتفرع SAVE/BGSAVE بلقطة RDB لحظية إلى القرص: تنسخ dump.rdb المكتمل (مع AOF إن فُعّل) لا الحالة المتقلبة في الذاكرة. ثم يسلّم Dockstash التفريغ إلى restic للقطات مشفّرة ومزالة التكرار وخارجية.

الاكتشاف

ما يكتشفه Dockstash

متغيرات البيئة المكتشفةREDIS_PASSWORD, REDIS_ARGS
المنفذ الافتراضي6379
مسارات البيانات الحية (لا تُنسخ حية أبدًا)/data, /data/dump.rdb, /data/appendonly.aof
أمثلة الصورredis:7-alpine, redis:7, redis:6, redis
خطوة بخطوة

انسخ Redis مع Dockstash خطوة بخطوة

  1. أنشئ حساب Dockstash وافتح لوحة التحكم

    سجّل مجانًا على app.dockstash.com/register. يسألك معالج الإعداد لمرة واحدة عن خادم التخزين VPS (الجهاز الذي سيحتفظ بالنسخ الاحتياطية المشفّرة) ويولّد كلمة مرور تشفير — احفظها فورًا في مدير كلمات مرور، فهي تُعرض مرة واحدة فقط.

  2. أضف مشروع Docker الذي يشغّل Redis

    في شاشة Projects يكتشف Dockstash تلقائيًا كل مجلد مشروع Compose على الخادم (افتراضيًا تحت /var/www). اختر المشروع الذي يحتوي خدمة Redis. لم يُنسخ شيء بعد — أنت فقط تخبر Dockstash أين يقيم المشروع.

  3. تحقق من اكتشاف Redis

    افتح المشروع وتبويب Plan. يقرأ Dockstash ملف docker-compose.yml ويتعرف على صورة redis ويضيف طبقة قاعدة بيانات باستراتيجية «احفظ ثم التقط» الصحيحة — مع اسم الحاوية والمتغيرات المكتشفة (REDIS_PASSWORD وREDIS_ARGS). فعّل أو عطّل الملفات والقواعد وإعدادات الوكيل قبل الحفظ.

  4. اختياري: تحقق من اللقطة يدويًا

    إن أردت دليلًا قبل الأتمتة، أطلق الحفظ نفسه الذي يطلقه Dockstash: نفّذ redis-cli BGSAVE داخل الحاوية. يجيب Redis بـ«Background saving started» ثم يتفرع ويكتب dump.rdb للحظة محددة في /data. هذا الملف المكتمل — لا الحالة الحية في الذاكرة أبدًا — هو ما يُنسخ.

    docker exec <redis-container> redis-cli BGSAVE
  5. أكّد وجهة التخزين

    تُخزَّن النسخ كلقطات restic مشفّرة على خادم التخزين VPS الخاص بك عبر SSH. إن أكملت معالج الإعداد فهي مهيّأة بالفعل؛ ويمكنك تغيير المضيف والمستخدم والمنفذ ومفتاح SSH في أي وقت من Settings → Storage.

  6. اضبط جدول النسخ الاحتياطي

    في تبويب Schedule اختر يوميًا أو أسبوعيًا أو cron مخصصًا (يُتحقق أثناء الكتابة). لريديس كمخزن أساسي (طوابير وجلسات) اليومي حد أدنى معقول والساعي شائع. أضف prune أسبوعيًا مع سياسة الاحتفاظ.

  7. شغّل أول نسخة احتياطية الآن

    انقر Backup Now. يطلق Dockstash حفظًا في الخلفية وينتظر اكتمال dump.rdb ثم ينسخه — مع appendonly.aof عند تفعيل استمرارية AOF — مباشرة إلى restic. تابع المخرجات الحية في لوحة السجلات.

  8. تأكد من وجود اللقطة

    عند انتهاء التشغيل تعرض بطاقة المشروع وقت آخر نسخة وعدد اللقطات وحجم المستودع. افتح شاشة Snapshots وسترى نقطة الاستعادة في الخط الزمني — هذا دليلك على وصول النسخة إلى موقعها الخارجي.

الأوامر

أمر التفريغ

redis-cli SAVE # then capture the resulting dump.rdb

أمر الاستعادة

place dump.rdb in the data dir and start redis-server

يتفرع SAVE/BGSAVE بلقطة RDB لحظية إلى القرص: تنسخ dump.rdb المكتمل (مع AOF إن فُعّل) لا الحالة المتقلبة في الذاكرة.

الاستعادة والتحقق

استعد نسخة Redis وأثبت أنها تعمل

نسخة Redis الاحتياطية لا تصبح حقيقية إلا بعد استعادتها. استعادات Dockstash لا تكتب فوق النسخة الحية افتراضيًا — إلى موقع جديد أولًا، فحص، ثم ترقية واعية.

  1. اختر نقطة استعادة

    افتح Snapshots واختر المشروع وتصفح الخط الزمني. كل صف يحوي dump.rdb كاملًا للحظة محددة (مع AOF إن فُعّل) وملفات المشروع من التشغيل نفسه.

  2. استعد إلى موقع جديد

    انقر Restore وأبقِ الوضع الافتراضي «Restore to new location». اكتب اسم المشروع للتأكيد — إجراء متعمّد بتأكيد مكتوب. يهبط التفريغ والملفات في المسار الهدف الذي تختاره دون المساس بالمشروع الحي.

  3. تحقق من البيانات المستعادة

    ضع dump.rdb المستعاد في دليل بيانات حاوية Redis تجريبية وشغّلها — يحمّل Redis ملف RDB عند الإقلاع. نفّذ redis-cli PING فيصلك PONG، ثم افحص مفاتيح تطبيقك بـ DBSIZE وبضع أوامر GET.

    docker exec <redis-container> redis-cli PING
  4. رقِّ النتيجة عند الاقتناع

    بعد التحقق من البيانات المستعادة وجّه تطبيقك إليها (أو أعد الاستعادة بوضع «Overwrite existing» — موافقة صريحة). الأفضل: دع تدريب الاستعادة الأسبوعي ينتج هذا الدليل تلقائيًا كي لا تكون الاستعادة الحقيقية أول بروفة لك.

المطبات

مطبات يجب تجنبها

  • نسخ dump.rdb أثناء إعادة كتابته يعطي ملفًا مبتورًا؛ أطلق SAVE (أو BGSAVE) أولًا ثم انسخ ملف RDB المكتمل.
  • إن فُعّلت استمرارية AOF فانسخ أيضًا ملفات appendonly.aof — ملف RDB وحده قد يتأخر عن آخر الكتابات.
  • استعادة Redis تتطلب خادمًا موقوفًا أو معاد تشغيله لتحميل RDB؛ لا يمكن استبدال dump.rdb حيًا في نسخة عاملة.
استكشاف الأخطاء

مشكلات شائعة في نسخ Redis

العرض
فشل تحميل dump.rdb المستعاد: «Short read or OOM loading DB» أو خطأ ملف مبتور.
السبب
نُسخ RDB بينما كان Redis يعيد كتابته — الالتقاط في منتصف إعادة الكتابة ينتج ملفًا ناقصًا.
العلاج
أطلق دائمًا SAVE أو BGSAVE وانتظر الاكتمال قبل التقاط dump.rdb. هذا بالضبط ما يفعله Dockstash: يطلق الحفظ وينتظر ثم ينسخ الملف المكتمل.
العرض
نجحت الاستعادة لكن أحدث الكتابات مفقودة.
السبب
استمرارية AOF مفعّلة وappendonly.aof كان يحمل كتابات أحدث من لقطة RDB — ملف RDB وحده متأخر.
العلاج
انسخ الملفين معًا. يلتقط Dockstash ملف /data/dump.rdb وappendonly.aof في التشغيل نفسه.
العرض
وضعت dump.rdb المستعاد في /data لكن Redis العامل ما زال يقدم البيانات القديمة.
السبب
يقرأ Redis ملف RDB عند الإقلاع فقط — لا استبدال حي. ومع appendonly مفعّل يحمّل Redis ملف AOF عند الإقلاع ويتجاهل RDB كليًا.
العلاج
أوقف الحاوية، وضع dump.rdb المستعاد (وAOF إن استعدته) في دليل البيانات ثم أعد التشغيل. إن استعدت RDB فقط في إعداد AOF فاضبط مؤقتًا appendonly no للإقلاع الأول ثم أعده.
العرض
يفشل BGSAVE برسالة «Can't save in background: fork: Cannot allocate memory».
السبب
رُفض الـfork اللازم للحفظ الخلفي بفعل استدلالات overcommit للذاكرة في النواة — على مضيف بمجموعة بيانات Redis كبيرة.
العلاج
اضبط vm.overcommit_memory=1 على مضيف Docker (sysctl) — الإعداد الذي يوصي به Redis نفسه عند الإقلاع. يستخدم الـfork النسخ عند الكتابة ولا يحتاج نسخة ثانية كاملة من البيانات.

أنجزه بنقرة واحدة مع Dockstash

ينفّذ Dockstash التفريغ أعلاه بالضبط ويسلّمه إلى restic خارجيًا ويختبر الاستعادة بتدريب تلقائيًا — بلا سكربت تصونه.

آخر تحديث: July 2026

الأسئلة الشائعة

هل يستحق Redis النسخ أصلًا؟

حسب الاستخدام. كذاكرة تخزين مؤقت خالصة يمتلئ Redis المفقود من تلقاء نفسه. كمخزن أساسي (طوابير وجلسات وsorted sets) نعم — انسخ RDB، وAOF إن فُعّل.

SAVE أم BGSAVE — أيهما يستخدم Dockstash؟

يتفرع BGSAVE ويلتقط في الخلفية دون حجب؛ SAVE يحجب حتى النهاية. يفضّل Dockstash الحفظ الخلفي ثم ينسخ dump.rdb المكتمل.

وماذا عن AOF (ملف الإلحاق فقط)؟

مع appendonly مفعّلًا يحمل AOF أحدث الكتابات التي قد لا يعكسها RDB بعد. يلتقط Dockstash ملف /data/dump.rdb وappendonly.aof معًا فلا تضيع بيانات حديثة.

هل يمكن نسخ dump.rdb وRedis يعمل؟

فقط بعد اكتمال SAVE/BGSAVE. النسخ أثناء إعادة الكتابة قد يمسك ملفًا ناقصًا. يطلق Dockstash الحفظ وينتظر اكتماله قبل الالتقاط.

كم مرة يجب نسخ Redis؟

وائم الجدول مع المحتوى. للطوابير والجلسات الساعي شائع؛ وللبيانات البطيئة اليومي كافٍ. في Free النسخ يدوي (Backup Now)؛ Pro حتى الساعي وBusiness أي تعبير cron.

أين تعيش النسخ الاحتياطية فعليًا؟

على خادم التخزين VPS الخاص بك، كلقطات restic مشفّرة تُدفع عبر SSH. لا يحتفظ Dockstash ببياناتك أبدًا على سحابة طرف ثالث — أنت توجّهه إلى جهاز تتحكم فيه، والمستودع مشفّر بكلمة مرور لا يملكها سواك.

كيف أعرف أن نسخة Redis تُستعاد فعلًا؟

جدوِل تدريب استعادة. يستعيد Dockstash أحدث لقطة إلى مساحة معزولة ويقارن الملفات بايتًا ببايت ويتحقق من التفريغ الملتقط — ثم يختم بشارة نجاح/فشل. تدريب أسبوعي يعني دليلًا طازجًا دائمًا.