Unix domain socket和memcached

unix域協議並不是一個實際的協議族,而是在單個主機上執行客戶/服務器通信的一種方法,是IPC的方法之一,特定於*nix平臺。使用unix domain socket有三個好處:
1)在同一主機上,unix domain socket比一般的tcp socket快上一倍,性能因素這是一個主要原因。
2)unix domain socket可以在同一主機的不同進程之間傳遞文件描述符
3)較新的unix domain socket實現把客戶的ID和組ID提供給服務器,可以讓服務器作安全檢查。

   memcached的FAQ中也提到爲了安全驗證,可以考慮讓memcached監聽unix domain socket。Memcached支持這一點,可以通過-s選項指定unix domain socket的路徑名,注意,爲了可移植性,儘量使用絕對路徑,因爲Posix標準聲稱給unix domain socket綁定相對路徑將導致不可預計的後果,我在linux的測試是可以使用相對路徑。假設我將memcached綁定到/home/dennis/memcached,可以這樣啓動memcached:

memcached -s /home/dennis/memcached


端口呢?沒有端口了,/home/dennis/memcached這個文件你可以理解成FIFO的管道,unix domain socket的server/client通過這個管道通訊。

   libmemcached支持通過unix domain socket來訪問memcached,基於libmemcached實現的client應該都可以使用這一功能。目前來看,java平臺由於不支持平臺相關的unix domain socket,因此無法享受memcached的這一特性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章