Java與php共用Memcached儲存資料中的有關問題與解決辦法

來源:互聯網
上載者:User
Java與php共用Memcached儲存資料中的問題與解決方案

Java與php共用Memcached儲存資料中的問題與解決方案

Posted by Demon at 05:57 上午 on 18, Aug 2010

php寫入的資料java讀不出來,java寫入的資料php讀取亂碼;
如果你根據php提供的memcache擴充協議來自行編寫java memcached client將不會有問題,我們這裡提到的是使用
java的 MemCachedClient 包;

php_extension: php_memcache.dll / memcache.sojava_jar: MemCachedClient [com.danga.MemCached.*]

解決方案:
經過查看MemCachedClient源碼,發現是 set 時 flags不同,java是根據儲存實值型別來訂flags的。

public static final int MARKER_BYTE             = 1;public static final int MARKER_BOOLEAN          = 8192;public static final int MARKER_INTEGER          = 4;public static final int MARKER_LONG             = 16384;public static final int MARKER_CHARACTER        = 16;public static final int MARKER_STRING           = 32;public static final int MARKER_STRINGBUFFER     = 64;public static final int MARKER_FLOAT            = 128;public static final int MARKER_SHORT            = 256;public static final int MARKER_DOUBLE           = 512;public static final int MARKER_DATE             = 1024;public static final int MARKER_STRINGBUILDER    = 2048;public static final int MARKER_BYTEARR          = 4096;

為了方便,兩者間的資料轉換使用JSON格式;
php與java在儲存的時候實值型別均要求為String類型,
並且php在$mem->set(key,value,32,expire);加粗部門要注意,這個是必須的。
然後php寫入的資料,java那邊就能夠順利讀取了,當php寫入array,object時,java讀取後json.decode就OK了。

1 樓 maozilee 2011-10-12

我的用JSON傳遞沒有問題,MEMCACHE會自動判斷和序列化。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.