بکاپ گرفتن از Redis و MongoDB
Redis و MongoDB هر دو راه سادهای برای بکاپ دارند. Redis با فایل RDB یا AOF و MongoDB با mongodump. در این راهنما هر دو را با دستورهای مستقیم میبینید.
۱بکاپ Redis: گرفتن snapshot
دستور BGSAVE بدون مسدود کردن سرور فایل dump.rdb را مینویسد. با LASTSAVE مطمئن شوید تمام شده است.
redis-cli bgsave
redis-cli lastsave
redis-cli config get dir۲کپی فایل بکاپ Redis
بعد از اتمام BGSAVE فایل را کپی کنید. مسیر پوشه را از config get dir بخوانید (معمولاً /var/lib/redis).
sudo cp /var/lib/redis/dump.rdb /var/backups/redis/dump_$(date +%F_%H-%M).rdbاگر AOF فعال است (appendonly yes) فایلهای پوشهٔ appendonlydir را هم بکاپ بگیرید.
۳ریستور Redis
سرویس را متوقف کنید، فایل را جایگزین کنید و سرویس را دوباره اجرا کنید.
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 همهچیز را در یک فایل فشرده میریزد.
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 های موجود را حذف میکند.
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 شبها اجرا کنید.
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 فایل را ابتدا در فایل موقت مینویسد و سپس جایگزین میکند، فایل نهایی همیشه سالم است.