Java操作Memcached缓存服务详解编程语言

Java操作Memcached缓存服务详解编程语言

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。


1.Java 连接 Memcached

import net.spy.memcached.MemcachedClient;

import java.net.*;

public class MemcachedJava {

   public static void main(String[] args) {

      try{

         // 本地连接 Memcached 服务

         MemcachedClient mcc = new MemcachedClient(new InetSocketAddress(“127.0.0.1”, 11211));

         System.out.println(“Connection to server sucessful.”);

        // 关闭连接

         mcc.shutdown();

     }catch(Exception ex){

         System.out.println( ex.getMessage() );

      }

   }

}

该程序中我们使用 InetSocketAddress 连接 IP 为 127.0.0.1 端口 为 11211 的 memcached 服务。

执行以上代码,如果连接成功会输出以下信息:

   Connection to server successful.


2.set 操作实例

以下使用 java.util.concurrent.Future 来存储数据

import java.net.InetSocketAddress;

import java.util.concurrent.Future;

import net.spy.memcached.MemcachedClient;

public class MemcachedJava {

   public static void main(String[] args) {

     try{

         // 连接本地的 Memcached 服务

         MemcachedClient mcc = new MemcachedClient(new InetSocketAddress(“127.0.0.1”, 11211));

         System.out.println(“Connection to server sucessful.”);

        // 存储数据

         Future fo = mcc.set(“runoob”, 900, “Free Education”);

        // 查看存储状态

         System.out.println(“set status:” + fo.get());

        // 输出值

         System.out.println(“runoob value in cache – ” + mcc.get(“runoob”));

        // 关闭连接

         mcc.shutdown();

     }catch(Exception ex){

         System.out.println( ex.getMessage() );

      }

   }

}

执行程序,输出结果为:

   Connection to server successful.

    set status:true

    runoob value in cache – Free Education


3.add 操作实例

import java.net.InetSocketAddress;

import java.util.concurrent.Future;

import net.spy.memcached.MemcachedClient;

public class MemcachedJava {

   public static void main(String[] args) {

     try{

        // 连接本地的 Memcached 服务

         MemcachedClient mcc = new MemcachedClient(new InetSocketAddress(“127.0.0.1”, 11211));

         System.out.println(“Connection to server sucessful.”);

        // 添加数据

         Future fo = mcc.set(“runoob”, 900, “Free Education”);

        // 打印状态

         System.out.println(“set status:” + fo.get());

        // 输出

         System.out.println(“runoob value in cache – ” + mcc.get(“runoob”));

        // 添加

         Future fo = mcc.add(“runoob”, 900, “memcached”);

        // 打印状态

         System.out.println(“add status:” + fo.get());

        // 添加新key

         fo = mcc.add(“codingground”, 900, “All Free Compilers”);

        // 打印状态

         System.out.println(“add status:” + fo.get());

        // 输出

         System.out.println(“codingground value in cache – ” + mcc.get(“codingground”));

        // 关闭连接

         mcc.shutdown();

     }catch(Exception ex){

         System.out.println(ex.getMessage());

      }

   }

}


4.replace 操作实例

import java.net.InetSocketAddress;

import java.util.concurrent.Future;

import net.spy.memcached.MemcachedClient;

public class MemcachedJava {

   public static void main(String[] args) {

     try {

         //连接本地的 Memcached 服务

         MemcachedClient mcc = new MemcachedClient(new InetSocketAddress(“127.0.0.1”, 11211));

         System.out.println(“Connection to server sucessful.”);

        // 添加第一个 key=》value 对

         Future fo = mcc.set(“runoob”, 900, “Free Education”);

        // 输出执行 add 方法后的状态

         System.out.println(“add status:” + fo.get());

        // 获取键对应的值

         System.out.println(“runoob value in cache – ” + mcc.get(“runoob”));

        // 添加新的 key

         fo = mcc.replace(“runoob”, 900, “Largest Tutorials’ Library”);

        // 输出执行 set 方法后的状态

         System.out.println(“replace status:” + fo.get());

        // 获取键对应的值

         System.out.println(“runoob value in cache – ” + mcc.get(“runoob”));

        // 关闭连接

         mcc.shutdown();

     }catch(Exception ex){

         System.out.println( ex.getMessage() );

      }

   }

}


5.append 操作实例

import java.net.InetSocketAddress;

import java.util.concurrent.Future;

import net.spy.memcached.MemcachedClient;

public class MemcachedJava {

   public static void main(String[] args) {

     try{

        // 连接本地的 Memcached 服务

         MemcachedClient mcc = new MemcachedClient(new InetSocketAddress(“127.0.0.1”, 11211));

         System.out.println(“Connection to server sucessful.”);

        // 添加数据

         Future fo = mcc.set(“runoob”, 900, “Free Education”);

        // 输出执行 set 方法后的状态

         System.out.println(“set status:” + fo.get());

        // 获取键对应的值

         System.out.println(“runoob value in cache – ” + mcc.get(“runoob”));

        // 对存在的key进行数据添加操作

         Future fo = mcc.append(“runoob”, 900, ” for All”);

        // 输出执行 set 方法后的状态

         System.out.println(“append status:” + fo.get());

        // 获取键对应的值

         System.out.println(“runoob value in cache – ” + mcc.get(“codingground”));

        // 关闭连接

         mcc.shutdown();

     }catch(Exception ex)

         System.out.println(ex.getMessage());

   }

}


6.prepend 操作实例

import java.net.InetSocketAddress;

import java.util.concurrent.Future;

import net.spy.memcached.MemcachedClient;

public class MemcachedJava {

   public static void main(String[] args) {

     try{

        // 连接本地的 Memcached 服务

         MemcachedClient mcc = new MemcachedClient(new InetSocketAddress(“127.0.0.1”, 11211));

         System.out.println(“Connection to server sucessful.”);

        // 添加数据

         Future fo = mcc.set(“runoob”, 900, “Education for All”);

        // 输出执行 set 方法后的状态

         System.out.println(“set status:” + fo.get());

        // 获取键对应的值

         System.out.println(“runoob value in cache – ” + mcc.get(“runoob”));

        // 对存在的key进行数据添加操作

         Future fo = mcc.prepend(“runoob”, 900, “Free “);

        // 输出执行 set 方法后的状态

         System.out.println(“prepend status:” + fo.get());

        // 获取键对应的值

         System.out.println(“runoob value in cache – ” + mcc.get(“codingground”));

        // 关闭连接

         mcc.shutdown();

     }catch(Exception ex)

         System.out.println(ex.getMessage());

   }

}


7.CAS 操作实例

import java.net.InetSocketAddress;

import java.util.concurrent.Future;

import net.spy.memcached.CASValue;

import net.spy.memcached.CASResponse;

import net.spy.memcached.MemcachedClient;

public class MemcachedJava {

   public static void main(String[] args) {

     try{

        // 连接本地的 Memcached 服务

         MemcachedClient mcc = new MemcachedClient(new InetSocketAddress(“127.0.0.1”, 11211));

         System.out.println(“Connection to server sucessful.”);

        // 添加数据

         Future fo = mcc.set(“runoob”, 900, “Free Education”);

        // 输出执行 set 方法后的状态

         System.out.println(“set status:” + fo.get());

        // 使用 get 方法获取数据

         System.out.println(“runoob value in cache – ” + mcc.get(“runoob”));

        // 通过 gets 方法获取 CAS token(令牌)

         CASValue casValue = mcc.gets(“runoob”);

        // 输出 CAS token(令牌) 值

         System.out.println(“CAS token – ” + casValue);

        // 尝试使用cas方法来更新数据

         CASResponse casresp = mcc.cas(“runoob”, casValue.getCas(), 900, “Largest Tutorials-Library”);

        // 输出 CAS 响应信息

         System.out.println(“CAS Response – ” + casresp);

        // 输出值

         System.out.println(“runoob value in cache – ” + mcc.get(“runoob”));

        // 关闭连接

         mcc.shutdown();

     }catch(Exception ex)

         System.out.println(ex.getMessage());

   }

}


8.get 操作实例

import java.net.InetSocketAddress;

import java.util.concurrent.Future;

import net.spy.memcached.MemcachedClient;

public class MemcachedJava {

   public static void main(String[] args) {

     try{

        // 连接本地的 Memcached 服务

         MemcachedClient mcc = new MemcachedClient(new InetSocketAddress(“127.0.0.1”, 11211));

         System.out.println(“Connection to server sucessful.”);

        // 添加数据

         Future fo = mcc.set(“runoob”, 900, “Free Education”);

        // 输出执行 set 方法后的状态

         System.out.println(“set status:” + fo.get());

        // 使用 get 方法获取数据

         System.out.println(“runoob value in cache – ” + mcc.get(“runoob”));

        // 关闭连接

         mcc.shutdown();

     }catch(Exception ex)

         System.out.println(ex.getMessage());

   }

}


9.gets 操作实例、CAS

import java.net.InetSocketAddress;

import java.util.concurrent.Future;

import net.spy.memcached.CASValue;

import net.spy.memcached.CASResponse;

import net.spy.memcached.MemcachedClient;

public class MemcachedJava {

   public static void main(String[] args) {

     try{

        // 连接本地的 Memcached 服务

         MemcachedClient mcc = new MemcachedClient(new InetSocketAddress(“127.0.0.1”, 11211));

         System.out.println(“Connection to server sucessful.”);

        // 添加数据

         Future fo = mcc.set(“runoob”, 900, “Free Education”);

        // 输出执行 set 方法后的状态

         System.out.println(“set status:” + fo.get());

        // 从缓存中获取键为 runoob 的值

         System.out.println(“runoob value in cache – ” + mcc.get(“runoob”));

        // 通过 gets 方法获取 CAS token(令牌)

         CASValue casValue = mcc.gets(“runoob”);

        // 输出 CAS token(令牌) 值

         System.out.println(“CAS value in cache – ” + casValue);

        // 关闭连接

         mcc.shutdown();

     }catch(Exception ex)

         System.out.println(ex.getMessage());

   }

}


10.delete 操作实例

import java.net.InetSocketAddress;

import java.util.concurrent.Future;

import net.spy.memcached.MemcachedClient;

public class MemcachedJava {

   public static void main(String[] args) {

     try{

        // 连接本地的 Memcached 服务

         MemcachedClient mcc = new MemcachedClient(new InetSocketAddress(“127.0.0.1”, 11211));

         System.out.println(“Connection to server sucessful.”);

        // 添加数据

         Future fo = mcc.set(“runoob”, 900, “World’s largest online tutorials library”);

        // 输出执行 set 方法后的状态

         System.out.println(“set status:” + fo.get());

        // 获取键对应的值

         System.out.println(“runoob value in cache – ” + mcc.get(“runoob”));

        // 对存在的key进行数据添加操作

         Future fo = mcc.delete(“runoob”);

        // 输出执行 delete 方法后的状态

         System.out.println(“delete status:” + fo.get());

        // 获取键对应的值

         System.out.println(“runoob value in cache – ” + mcc.get(“codingground”));

        // 关闭连接

         mcc.shutdown();

     }catch(Exception ex)

         System.out.println(ex.getMessage());

   }

}


11.Incr/Decr 操作实例

import java.net.InetSocketAddress;

import java.util.concurrent.Future;

import net.spy.memcached.MemcachedClient;

public class MemcachedJava {

   public static void main(String[] args) {

     try{

        // 连接本地的 Memcached 服务

         MemcachedClient mcc = new MemcachedClient(new InetSocketAddress(“127.0.0.1”, 11211));

         System.out.println(“Connection to server sucessful.”);

        // 添加数字值

         Future fo = mcc.set(“number”, 900, “1000”);

        // 输出执行 set 方法后的状态

         System.out.println(“set status:” + fo.get());

        // 获取键对应的值

         System.out.println(“value in cache – ” + mcc.get(“number”));

        // 自增并输出

         System.out.println(“value in cache after increment – ” + mcc.incr(“number”, 111));

        // 自减并输出

         System.out.println(“value in cache after decrement – ” + mcc.decr(“number”, 112));

        // 关闭连接

         mcc.shutdown();

     }catch(Exception ex)

         System.out.println(ex.getMessage());

   }

}

Java操作Memcached缓存服务详解编程语言

转载请注明来源网站:blog.ytso.com谢谢!

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/14681.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论