Anda sudah cukup banyak mendapatkan jawaban atas pertanyaan pertama Anda: maksudnya ADD
adalah untuk hanya bekerja ketika kunci belum ada, sementara SET
ada untuk memperbarui nilai, terlepas dari apakah sudah ada. Jika Anda terbiasa dengan SQL, itu (kira-kira) seperti perbedaan antara INSERT
kueri ( ADD
) dan UPDATE
( SET
).
Sehubungan dengan pertanyaan tambahan Anda, Anda akan menggunakan mana yang sesuai dengan tujuan Anda. Saya akan mengatakan itu SET
akan menjadi operasi yang lebih umum, karena itu lebih umum bahwa Anda hanya ingin mengatakan "Saya ingin kunci foo
memiliki nilai bar
, dan saya tidak peduli apakah sudah ada di sana atau belum". Namun, akan ada (lebih jarang) kesempatan ketika perlu mengetahui bahwa kunci belum ada dalam cache.
Contoh yang muncul dalam pikiran kapan yang ADD
tepat adalah menyimpan sesi dalam memcache (yang, saya tidak sarankan) - jika Anda membuat ID sesi Anda secara acak (atau melalui hashing), Anda tidak akan mau untuk membuat sesi baru dengan kunci yang sama dengan yang sudah ada, karena ini akan memberikan satu pengguna akses ke data pengguna lain. Dalam hal ini, ketika Anda membuat sesi yang akan Anda gunakan ADD
, dan jika itu mengembalikan status kegagalan Anda perlu membuat ID sesi baru dan coba lagi. Memperbarui sesi, tentu saja, akan digunakan SET
saat pengguna mengerjakan aplikasi Anda.