بکاپ گرفتن از Redis و MongoDB

Redis و MongoDB هر دو راه ساده‌ای برای بکاپ دارند. Redis با فایل RDB یا AOF و MongoDB با mongodump. در این راهنما هر دو را با دستورهای مستقیم می‌بینید.

دیتابیس و بکاپمقدماتی7 دقیقه

۱بکاپ Redis: گرفتن snapshot

دستور BGSAVE بدون مسدود کردن سرور فایل dump.rdb را می‌نویسد. با LASTSAVE مطمئن شوید تمام شده است.

bash
redis-cli bgsave
redis-cli lastsave
redis-cli config get dir

۲کپی فایل بکاپ Redis

بعد از اتمام BGSAVE فایل را کپی کنید. مسیر پوشه را از config get dir بخوانید (معمولاً /var/lib/redis).

bash
sudo cp /var/lib/redis/dump.rdb /var/backups/redis/dump_$(date +%F_%H-%M).rdb

اگر AOF فعال است (appendonly yes) فایل‌های پوشهٔ appendonlydir را هم بکاپ بگیرید.

۳ریستور Redis

سرویس را متوقف کنید، فایل را جایگزین کنید و سرویس را دوباره اجرا کنید.

bash
sudo systemctl stop redis-server
sudo cp /var/backups/redis/dump_2026-09-29_03-00.rdb /var/lib/redis/dump.rdb
sudo chown redis:redis /var/lib/redis/dump.rdb
sudo systemctl start redis-server

جایگزینی dump.rdb داده‌های فعلی Redis را از بین می‌برد.

۴بکاپ MongoDB با mongodump

گزینهٔ --gzip و --archive همه‌چیز را در یک فایل فشرده می‌ریزد.

bash
mongodump --uri="mongodb://backup:PASSWORD@127.0.0.1:27017/appdb?authSource=admin" \
  --gzip --archive=/var/backups/mongo/appdb_$(date +%F).gz

۵ریستور MongoDB

با mongorestore از فایل آرشیو بازگردانید. --drop قبل از ریستور collection های موجود را حذف می‌کند.

bash
mongorestore --uri="mongodb://admin:PASSWORD@127.0.0.1:27017" \
  --gzip --archive=/var/backups/mongo/appdb_2026-09-29.gz --drop

گزینهٔ --drop داده‌های فعلی collection ها را حذف می‌کند.

۶زمان‌بندی با cron

هر دو بکاپ را با cron شب‌ها اجرا کنید.

bash
0 3 * * * redis-cli bgsave && sleep 30 && cp /var/lib/redis/dump.rdb /var/backups/redis/dump_$(date +\%F).rdb
30 3 * * * mongodump --gzip --archive=/var/backups/mongo/all_$(date +\%F).gz

در cron علامت درصد باید با بک‌اسلش escape شود.

پرسش‌های پرتکرار دربارهٔ بکاپ گرفتن از Redis و MongoDB

آیا کپی مستقیم dump.rdb ایمن است؟

بعد از اینکه BGSAVE کامل شد بله؛ چون Redis فایل را ابتدا در فایل موقت می‌نویسد و سپس جایگزین می‌کند، فایل نهایی همیشه سالم است.