国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

java存入信息php讀寫memcache亂碼問題

2024-05-04 21:47:21
字體:
供稿:網(wǎng)友

故事背景:我用java插入一條數(shù)字記錄,用php讀取無法正確讀取,今天發(fā)現(xiàn)如果使用MemCachedClient來插入一條數(shù)字,或者java的對象,那么在php調(diào)出來就是亂碼,對象可以理解,簡單的數(shù)字也會亂碼,如:mcc.set("a",25);php中出來的是亂碼,同時如果采用telnet的方式來進行查詢 get a 出來問號。

翻了一圈說要改類包,最后發(fā)現(xiàn)個問題,如果改用字符串,那么java和php就能通用了,代碼如下:mcc.set("a","25″);

而且telnet 192.168.0.1 11211進入進行g(shù)et也能得出正確的數(shù)字了,本來我要對a這個值進行加法運算,覺得采用int會方便一些,居然和php讀取memcache的時候有沖突。還是來回進行變量類型轉(zhuǎn)換吧。

如果你也在使用java寫入memcache,php讀出memcache,通用一個字符串存儲,就可以避免很多問題了,不是java的類包不行。

java讀取php寫入memcache內(nèi)容

當前需求:php將key為"my_key",value為"my_value"寫入到memcache中,然后用java連接memcache讀取my_key的值my_value,php端的代碼為:

  1. <?php 
  2. $mem=new Memcache; 
  3. $mem->connect("192.168.1.20",27688); 
  4. $mem->set("my_key","my_value",FALSE , 86400); 
  5. $my_v=$mem->get("my_key"); 
  6. var_dump($my_v); 
  7. $mem->close(); 
  8. ?> 

經(jīng)檢測,php寫入后,用php和在memcache命令行都能獲取的很好,但是,用下面的java代碼獲取,卻獲取到null

  1. import com.danga.MemCached.MemCachedClient; 
  2. import com.danga.MemCached.SockIOPool; 
  3. public class CacheReader { 
  4. static private MemCachedClient client =new MemCachedClient(); 
  5. static
  6.    String[] servers = { "192.168.1.20:27688"}; 
  7.    SockIOPool pool = SockIOPool.getInstance(); 
  8.    pool.setServers(servers); 
  9.    pool.initialize(); 
  10. public void   get(String name){ 
  11.    System.out.println(client.get(name)); 
  12. public static void main(String[] args) { 
  13.    new CacheReader().get("my_key"); 

一開始,我還以為是我的編碼的問題,或者是某些參數(shù)設(shè)置的問題。后來,我想可能是各種memcache的客戶端的尋址方式不太一樣吧。幾經(jīng)周折,還是間接的解決了這個問題:我更換了java端的memcache的客戶端,采用net.spy.memcached.MemcachedClient就可以了,代碼如下:

  1. import java.io.IOException; 
  2. import java.net.InetSocketAddress; 
  3. import net.spy.memcached.MemcachedClient; 
  4. public class SpyMem { 
  5. public static void main(String[] args) { 
  6.    try { 
  7.     MemcachedClient c=new MemcachedClient(new InetSocketAddress("192.168.1.20",27688)); 
  8.     System.out.println(c.get("my_key")); 
  9.     c.shutdown(); 
  10.    } catch (IOException e) { 
  11.     e.printStackTrace(); 
  12.    } 
  13. }  

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴安县| 五大连池市| 礼泉县| 高淳县| 高青县| 太谷县| 兰溪市| 新竹市| 鹤山市| 思茅市| 大兴区| 资阳市| 阿图什市| 长葛市| 五大连池市| 东至县| 桓台县| 彩票| 读书| 资溪县| 长治县| 宁晋县| 华宁县| 福安市| 吐鲁番市| 陇西县| 准格尔旗| 曲麻莱县| 常州市| 辰溪县| 伊通| 河间市| 依兰县| 临颍县| 塘沽区| 青铜峡市| 兴义市| 阿拉善盟| 新余市| 安乡县| 江安县|