日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Tokyo Tyrant(TTServer)系列(三)-Memcache协议

發布時間:2025/7/14 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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
編寫php腳本
$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");
?>
執行后輸出:(在服務器上直接執行php腳本,假設在瀏覽器中訪問,效果就更加直觀。



須要注意的問題

序列化問題

?? 假設你熟悉memcache協議。或者你以前用php的memcache來使用ttserver。你可能立即就發現了上面的問題。

比方我們key3是一個數組,可是我們取回來的是一個序列化的字符串,沒有自己主動反序列化,在memcached服務器上是會自己主動反序列化的。

?? ?通過上面的telnet演示樣例我們能夠看到,我們add key1的時候設置flag參數為1,可是我們get回來的時候,返回的flag參數是0,實際上,ttserver是沒有存儲flag參數的。統一的都使用0,這就造成了php使用時不會自己主動反序列化,當然。假設你使用壓縮參數,一樣會有這種問題。

怎么樣解決問題,假設要改動ttserver的代碼實為不方便。我們全然能夠在php。或者我們的client來控制。比方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)
?>
我們看到相同的代碼用在memcache返回了失敗(false)。我們能夠在php手冊上看到這樣一句話“Memcache::increment()?does not?create an item if it didn't exist.”可是相同的,用在ttserver上就是成功的。這一點要特別注意。


總結

以上是生活随笔為你收集整理的Tokyo Tyrant(TTServer)系列(三)-Memcache协议的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。