Pada dasarnya ada dua tipe utama yang tersedia: async snapsnots dan fsync()
. Mereka masing-masing disebut RDB dan AOF. Lebih lanjut tentang mode persistensi di halaman resmi .
Penanganan sinyal dari proses daemonisasi disinkronkan ke disk ketika menerima SIGTERM misalnya, sehingga data akan tetap ada setelah reboot. Saya pikir daemon atau OS harus macet sebelum Anda melihat kerusakan integritas, bahkan dengan pengaturan default (snapshot RDB).
Pengaturan AOF menggunakan Append Only File yang mencatat perintah yang diterima server, dan membuat ulang DB dari awal saat cold start, dari file yang disimpan. Kebijakan sinkronisasi disk default adalah mengosongkan setiap detik (IIRC) tetapi dapat disetel untuk mengunci dan menulis di setiap perintah.
Menggunakan snapshot dan log inkremental tampaknya menawarkan pendekatan data jangka panjang jangan-keberatan-jika-saya-melewatkan-beberapa-detik dengan log tambahan yang lebih aman, tetapi mahal. Redis mendukung pengelompokan di luar kotak, sehingga tampaknya replikasi juga dapat dilakukan.
Saya menggunakan pengaturan RDB default sendiri dan menyimpan snapshot ke FTP jarak jauh. Saya belum melihat kegagalan yang menyebabkan kehilangan data. Kegagalan perangkat keras akut atau pemadaman listrik kemungkinan besar akan terjadi, tetapi saya dihosting di VPS. Kesempatan kecil untuk itu terjadi :)