Tokyo Tyrant(TTServer)系列(三)-Memcache协议
生活随笔
收集整理的這篇文章主要介紹了
Tokyo Tyrant(TTServer)系列(三)-Memcache协议
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
通過Memcache協議使用ttserver
通過telnet 127.0.0.1 9032 telnet連接到到啟動的實例。下面我們通過add添加key為key1和value為value1的數據。通過get key1獲取數據。(<key> <flags> <exptime> <bytes>)
| add key1 1 0 6value1STOREDget key1VALUE key1 0 6value1END |
| $mem=new?Memcache(); $mem->connect("127.0.0.1",9032); $mem->add("key2","xifeijian"); print_r( $mem->get("key2")); echo?"<br />"; $mem->add("key3",array("value3"=>"this is xifeijian")); echo $mem->get("key3"); ?> |
)
須要注意的問題
序列化問題
?? 假設你熟悉memcache協議。或者你以前用php的memcache來使用ttserver。你可能立即就發現了上面的問題。
比方我們key3是一個數組,可是我們取回來的是一個序列化的字符串,沒有自己主動反序列化,在memcached服務器上是會自己主動反序列化的。?? ?通過上面的telnet演示樣例我們能夠看到,我們add key1的時候設置flag參數為1,可是我們get回來的時候,返回的flag參數是0,實際上,ttserver是沒有存儲flag參數的。統一的都使用0,這就造成了php使用時不會自己主動反序列化,當然。假設你使用壓縮參數,一樣會有這種問題。
怎么樣解決問題,假設要改動ttserver的代碼實為不方便。我們全然能夠在php?;蛘呶覀兊腸lient來控制。比方value我們統一的都序列化后存儲,取出來的時候我們再反序列化。自增問題
| //使用ttserver自增 $mem=new?Memcache(); $mem->connect("127.0.0.1",9032); var_dump($mem->increment("incr")); //結果為int(1) ? > |
?
| //使用memcache自增 $mem=new?Memcache(); $mem->connect("127.0.0.1",9023); var_dump($mem->increment("incr")); //結果為bool(false) ?> |
總結
以上是生活随笔為你收集整理的Tokyo Tyrant(TTServer)系列(三)-Memcache协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 好东西,各城市域名解析测试及网速测试
- 下一篇: 使用AdMob实现广告统一