日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2025/7/14 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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协议的全部內容,希望文章能夠幫你解決所遇到的問題。

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