Zaten ilk sorunuzun cevabını aldınız: amacı ADDsadece bir anahtar zaten olmadığında çalışmaktır, mevcut SETolup olmadığına bakılmaksızın değeri güncellemek için vardır. SQL hakkında bilginiz varsa, (kabaca) INSERTsorgu ( ADD) ve UPDATE( SET) arasındaki fark gibidir .
Zeyilname sorunuzla ilgili olarak amacınıza uygun olanı kullanırsınız. Bunun SETdaha yaygın bir işlem olacağını söyleyebilirim , çünkü "Anahtarın foodeğere sahip olmasını istiyorum ve barzaten orada olup olmadığını umursam" demek istemeniz daha yaygın . Bununla birlikte, bir anahtarın önbellekte bulunmadığını bilmek gerektiğinde (daha az sıklıkta) durumlar olur.
Uygun olduğunda akla gelen bir örnek, ADDoturumları memcache'de saklamaktır (bu arada, tavsiye etmiyorum) - oturum kimliklerinizi rastgele oluşturursanız (veya karma yoluyla), istemezsiniz mevcut bir anahtarla aynı anahtarla yeni bir oturum oluşturmak için, bu bir kullanıcıya başka bir kullanıcının verilerine erişim izni verecektir. Bu durumda, oturumu oluşturduğunuzda kullanırsınız ADDve başarısızlık durumu döndürdüyse yeni bir oturum kimliği oluşturmanız ve tekrar denemeniz gerekir. Oturumu güncellemek, elbette, SETkullanıcı uygulamanızda yoluna devam ederken kullanılır.