我的問題是關於memcached。 Facebook使用memcached作爲其結構化數據的緩存,以減少用戶的延遲。他們利用Linux在Linux上優化了memcached的性能。 http://www.facebook.com/note.php?note_id=39391378919爲什麼facebook在memcached中使用TCP for SET和UDP for GET
但有趣的是,他們仍然使用TCP進行設置操作,但使用UDP進行獲取操作。
他們爲什麼要這麼做?我的意思是爲什麼不使用UDP進行設置操作呢?由於需要在操作系統中維護的狀態減少,因此UDP比TCP更好地擴展。
謝謝,
他們想要確保他們收到的數據是正確的錯誤檢查,但不要給一個該死的,如果你正確地得到他們的數據? – 2012-07-10 03:24:58
只要設置的執行頻率比獲得的低百倍 - 是否真的有很大的意義? – zerkms 2012-07-10 03:25:55
@CoreyOgburn TCP和UDP都有校驗和。 TCP所做的是流量控制。如果你丟失了一個打包的TCP可以重新發送數據包,而在UDP中,整個數據必須被重新發送。 – 0xhacker 2012-07-10 04:14:40