Lebih khusus lagi, dari FAQ Redis
Skema penyimpanan latar belakang Redis bergantung pada semantik copy-on-write dari fork dalam sistem operasi modern:Redis forks (membuat proses anak) yang merupakan salinan persis dari induknya. Proses anak membuang DB pada disk dan akhirnya keluar. Secara teori anak harus menggunakan memori sebanyak orang tua menjadi salinan, tetapi sebenarnya berkat semantik copy-on-write yang diterapkan oleh sebagian besar sistem operasi modern, proses induk dan anak akan berbagi halaman memori yang sama. Sebuah halaman akan diduplikasi hanya jika halaman tersebut berubah pada anak atau induknya. Karena secara teori semua halaman dapat berubah saat proses anak disimpan, Linux tidak dapat mengetahui sebelumnya berapa banyak memori yang akan digunakan anak, jadi jika pengaturan overcommit_memory disetel ke nol garpu akan gagal kecuali ada RAM kosong sebanyak diperlukan untuk benar-benar menduplikasi semua halaman memori induk, akibatnya jika Anda memiliki set data Redis sebesar 3 GB dan hanya 2 GB memori kosong, itu akan gagal.
Menyetel overcommit_memory ke 1 mengatakan Linux untuk bersantai dan melakukan fork dengan cara alokasi yang lebih optimis, dan ini memang yang Anda inginkan untuk Redis.
Redis tidak membutuhkan memori sebanyak yang diperkirakan OS untuk menulis ke disk, jadi mungkin akan gagal fork terlebih dahulu.