2013-07-15 32 views
3

我試圖用TouchByKey這是一個分佈式緩存功能,但這樣的警告彈出:的Memcached :: touchByKey():觸摸僅支持二進制協議

Memcached::touchByKey(): touch is only supported with binary protocol

我發現我可以使用例如:客戶端的$mc->setOption(\Memcached::OPT_BINARY_PROTOCOL, true);

同樣的問題Touch()

我的問題是,我需要的內存緩存服務器本身的改變有什麼事情發生?爲什麼這甚至需要二進制協議?爲什麼現在的ASCII協議沒有這個功能?

回答

3

當實現完成時,它只對二進制協議完成,但沒有具體理由爲什麼它不能爲ASCII協議完成。實施者可能只是不想花時間做這兩件事。我想說的另一件事是二進制協議比ASCII協議快得多。除非你有使用ASCII的某些特定原因,否則我建議只切換到二進制。另外,如果您想提交memcached的補丁以支持ASCII協議,我相信它會被項目所有者合併。

+0

感謝您的回答。你能指導我設置二進制協議嗎? – saada

+0

您正在使用哪個PHP庫?我相信有兩個不同的圖書館。 – mikewied

+0

memcached(而不是memcache) – saada