Tokyo Tyrant(TTServer)系列(三)-Memcache协议
生活随笔
收集整理的這篇文章主要介紹了
Tokyo Tyrant(TTServer)系列(三)-Memcache协议
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
通過Memcache協(xié)議使用ttserver
通過telnet 127.0.0.1 9032 telnet連接到到啟動(dòng)的實(shí)例。下面我們通過add添加key為key1和value為value1的數(shù)據(jù)。通過get key1獲取數(shù)據(jù)。(<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"); ?> |
)
須要注意的問題
序列化問題
?? 假設(shè)你熟悉memcache協(xié)議。或者你以前用php的memcache來(lái)使用ttserver。你可能立即就發(fā)現(xiàn)了上面的問題。
比方我們key3是一個(gè)數(shù)組,可是我們?nèi)』貋?lái)的是一個(gè)序列化的字符串,沒有自己主動(dòng)反序列化,在memcached服務(wù)器上是會(huì)自己主動(dòng)反序列化的。?? ?通過上面的telnet演示樣例我們能夠看到,我們add key1的時(shí)候設(shè)置flag參數(shù)為1,可是我們get回來(lái)的時(shí)候,返回的flag參數(shù)是0,實(shí)際上,ttserver是沒有存儲(chǔ)flag參數(shù)的。統(tǒng)一的都使用0,這就造成了php使用時(shí)不會(huì)自己主動(dòng)反序列化,當(dāng)然。假設(shè)你使用壓縮參數(shù),一樣會(huì)有這種問題。
怎么樣解決問題,假設(shè)要改動(dòng)ttserver的代碼實(shí)為不方便。我們?nèi)荒軌蛟趐hp。或者我們的client來(lái)控制。比方value我們統(tǒng)一的都序列化后存儲(chǔ),取出來(lái)的時(shí)候我們?cè)俜葱蛄谢?h3 style="font-size:17px;color:rgb(57,57,57);font-family:verdana, 'ms song', Arial, Helvetica, sans-serif;">自增問題| //使用ttserver自增 $mem=new?Memcache(); $mem->connect("127.0.0.1",9032); var_dump($mem->increment("incr")); //結(jié)果為int(1) ? > |
?
| //使用memcache自增 $mem=new?Memcache(); $mem->connect("127.0.0.1",9023); var_dump($mem->increment("incr")); //結(jié)果為bool(false) ?> |
總結(jié)
以上是生活随笔為你收集整理的Tokyo Tyrant(TTServer)系列(三)-Memcache协议的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 好东西,各城市域名解析测试及网速测试
- 下一篇: 使用AdMob实现广告统一