好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

java存入信息php读写memcache乱码问题 - php高级应用

java存入信息php读写memcache乱码问题

故事背景: 我用java插入一条数字记录,用php读取无法正确读取,今天发现如果使用MemCachedClient来插入一条数字,或者java的对象,那么在php调出来就是乱码,对象可以理解,简单的数字也会乱码,如:mcc.set("a",25);php中出来的是乱码,同时如果采用telnet的方式来进行查询 get a 出来问号。

翻了一圈说要改类包,最后发现个问题,如果改用字符串,那么java和php就能通用了,代码如下:mcc.set("a","25″);

而且telnet 192.168.0.1 11211进入进行get也能得出正确的数字了,本来我要对a这个值进行加法运算,觉得采用int会方便一些,居然和php读取memcache的时候有冲突。还是来回进行变量类型转换吧。

如果你也在使用java写入memcache,php读出memcache,通用一个字符串存储,就可以避免很多问题了,不是java的类包不行。

java读取php写入memcache内容

当前需求:php将key为"my_key",value为"my_value"写入到memcache中,然后用java连接memcache读取my_key的值my_value,php端的代码为:

<?php  $mem = new  Memcache;  $mem ->connect( "192.168.1.20" ,27688);  $mem ->set( "my_key" , "my_value" ,FALSE , 86400);  $my_v = $mem ->get( "my_key" );  var_dump( $my_v );  $mem ->close();  ?> 

经检测,php写入后,用php和在memcache命令行都能获取的很好,但是,用下面的java代码获取,却获取到null

import com.danga.MemCached.MemCachedClient;  import com.danga.MemCached.SockIOPool;  public   class  CacheReader {  static   private  MemCachedClient client = new  MemCachedClient();  static {     String[] servers = {  "192.168.1.20:27688" };     SockIOPool pool = SockIOPool.getInstance();     pool.setServers(servers);     pool.initialize();  }  public  void   get(String name){     System.out.println(client.get(name));  }  public   static  void main(String[] args) {      new  CacheReader().get( "my_key" );  }  } 

一开始,我还以为是我的编码的问题,或者是某些参数设置的问题。后来,我想可能是各种memcache的客户端的寻址方式不太一样吧。几经周折,还是间接的解决了这个问题:我更换了java端的memcache的客户端,采用net.spy.memcached.MemcachedClient就可以了,代码如下:

import  java.io.IOException;  import  java.net.InetSocketAddress;  import  net.spy.memcached.MemcachedClient;  public   class  SpyMem {  public   static   void  main(String[] args) {      try  {      MemcachedClient c= new  MemcachedClient( new  InetSocketAddress( "192.168.1.20" , 27688 ));      System.out.println(c.get( "my_key" ));      c.shutdown();     }  catch  (IOException e) {      e.printStackTrace();     }  }   } 

查看更多关于java存入信息php读写memcache乱码问题 - php高级应用的详细内容...

  阅读:47次