493333王中王开奖结果-王中王开奖一马中特

493333王中王开奖结果让不同类型的网络可以可靠地互相联接,王中王开奖一马中特拥有规模庞大的原创游戏,在这里您将享受的不一样快乐。

网络频道

当前位置:493333王中王开奖结果 > 网络频道 > 493333王中王开奖结果Memcached提升Web数据操作读写

493333王中王开奖结果Memcached提升Web数据操作读写

来源:http://www.soniaLorenzana.com 作者:493333王中王开奖结果 时间:2019-09-30 17:04

java读取php写入memcache内容

1、下载安装

故事背景:我用java插入一条数字记录,用php读取无法正确读取。

  1. http://jehiah.cz/projects/memcached-win32/ 上下载memcache的windows稳定版,解压放某个盘下面,比如在F:memcached

  2. 在终端(也即cmd命令界面)下输入 'F:memcachedmemcached.exe -d install' 安装

  3. 再输入: 'F:memcachedmemcached.exe -d start' 启动

今天发现如果使用MemCachedClient来插入一条数字,或者java的对象,那么在php调出来就是乱码。

4.开发jar包下载:

对象可以理解,简单的数字也会乱码

memcached client for java:https://github.com/gwhalin/Memcached-Java-Client/downloads

spymemcached:http://code.google.com/p/spymemcached/

 代码如下

xmemcached:http://code.google.com/p/xmemcached/ --- 注意: 以后memcached将作为windows的一个服务每次开机时自动启动。默认端口:11211。

mcc.set("a",25);

2、Memcahe的三种API

php中出来的是乱码,同时如果采用telnet的方式来进行查询
get a

(1)、memcached client for java,memcache 最早推出的Java客户端API,并且不断更新,性能上得到提升并且稳定。

出来问号。

(2)、spymemcached

翻了一圈说要改类包。

A simple,asynchronous,single-thread memcached client written in java.支持异步单线程的memcached客户端。

最后发现个问题,如果改用字符串,那么java和php就能通用了。

使用到JDK1.5听过的nio和concurrent,存取速度高于前者,但是稳定性不好,测试中常报TimeOut异常。

 代码如下

(3)、xmemcached

mcc.set("a","25″);

xmemcached同样是基于java nio的客户端,java nio 相对于传统io来说有效率高(特别是在处理并发方面)和资源耗费相对较少的优点。

而且telnet 192.168.0.1 11211进入进行get也能得出正确的数字了。

传统io需要建立多个连接组成连接池,而nio只需要一个连接即可(nio也可以池化),减少了线程的创建和切换的开销,这一点在高并发操作下尤为明显。因此,xmemcached和spymemcached在性能方面都非常优秀,在某些方面(存储的数据量比较小的情况下),xmemcached要优于spymemcached。

本来我要对a这个值进行加法运算,觉得采用int会方便一些,居然和php读取memcache的时候有冲突。还是来回进行变量类型转换吧。

3、程序参考示例--见java测试文件

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

<SPAN style="FONT-SIZE: 12px">package com.boonya.mecache;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class TestMemCached {
 
    /**
    * @param args
    */
    public static void main(String[] args) {
     
        /**
        * 初始化SockIoPool,管理MemCached线程池
        */
        String servers[]={"192.168.20.37:11211"};
        SockIOPool pool=SockIOPool.getInstance();
        pool.setServers(servers);
        pool.setFailover(true);
        pool.setInitConn(10);
        pool.setMinConn(5);
        pool.setMaxConn(300);
        pool.setMaintSleep(30);
        pool.setNagle(false);
        pool.setSocketTO(3000);
        pool.setAliveCheck(true);
        pool.initialize();
     
        /**
        * 创建MemCachedClient实例
        */
        MemCachedClient memcacheClient=new MemCachedClient();
     
        for (int i = 0; i < 100; i++) {
            boolean success=memcacheClient.set("key"+i,"a_memcached");//将对象加入到MemCache缓存
            /**
            * 读取MemCache缓存
            */
            String result=(String) memcacheClient.get("key"+i);
            System.out.println(String.format("set{%d}:%s",i,success));
            System.out.println(String.format("get{%d}:%s",i,result));
        }
     
    }

不是java的类包不行。

}
package com.boonya.mecache;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import net.spy.memcached.MemcachedClient;
public class TestSpyMemCached {
 
    public static void main(String[] args) throws InterruptedException, ExecutionException {
     
        /**
        * 建立MemCached的示例
        */
        try {
            MemcachedClient memcacheClient=new MemcachedClient(
                    new InetSocketAddress("192.168.20.37", 11211));
         
            Future<Boolean> fbl=null;
            /*将key,过期时间,对应的值设入到MemCache*/
            fbl=memcacheClient.set("user:data:key", 1000, "me");
            if(fbl.get().booleanValue()==true){
                memcacheClient.shutdown();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
     
        /**
        * 获取MemCached的示例
        */
        try {
            MemcachedClient memcacheClient=new MemcachedClient(
                    new InetSocketAddress("192.168.20.37", 11211));
         
            Object obj=memcacheClient.get("user:data:key");
            System.out.println(obj);
            memcacheClient.shutdown();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

本文由493333王中王开奖结果发布于网络频道,转载请注明出处:493333王中王开奖结果Memcached提升Web数据操作读写

关键词: