Java connects to Memcached service
To use a Java program to connect to Memcached, you need to add the Memcached jar package to your classpath.
The following program assumes that the host of the Memcached service is 127.0.0.1 and the port is 11211.
Connection example
Java connection to 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() ); } } }
In this program, we use InetSocketAddress to connect to the memcached service with IP 127.0.0.1 and port 11211.
Execute the above code, if the connection is successful, the following information will be output:
Connection to server successful.
set operation example
The following uses java.util.concurrent.Future to store data
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("php", 900, "Free Education"); // 查看存储状态 System.out.println("set status:" + fo.get()); // 输出值 System.out.println("php value in cache - " + mcc.get("php")); // 关闭连接 mcc.shutdown(); }catch(Exception ex){ System.out.println( ex.getMessage() ); } } }
Execute the program, the output result is:
Connection to server successful. set status:true php value in cache - Free Education
add operation instance
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("php", 900, "Free Education"); // 打印状态 System.out.println("set status:" + fo.get()); // 输出 System.out.println("php value in cache - " + mcc.get("php")); // 添加 Future fo = mcc.add("php", 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()); } } }
replace operation instance
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("php", 900, "Free Education"); // 输出执行 add 方法后的状态 System.out.println("add status:" + fo.get()); // 获取键对应的值 System.out.println("php value in cache - " + mcc.get("php")); // 添加新的 key fo = mcc.replace("php", 900, "Largest Tutorials' Library"); // 输出执行 set 方法后的状态 System.out.println("replace status:" + fo.get()); // 获取键对应的值 System.out.println("php value in cache - " + mcc.get("php")); // 关闭连接 mcc.shutdown(); }catch(Exception ex){ System.out.println( ex.getMessage() ); } } }
append operation instance
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("php", 900, "Free Education"); // 输出执行 set 方法后的状态 System.out.println("set status:" + fo.get()); // 获取键对应的值 System.out.println("php value in cache - " + mcc.get("php")); // 对存在的key进行数据添加操作 Future fo = mcc.append("php", 900, " for All"); // 输出执行 set 方法后的状态 System.out.println("append status:" + fo.get()); // 获取键对应的值 System.out.println("php value in cache - " + mcc.get("codingground")); // 关闭连接 mcc.shutdown(); }catch(Exception ex) System.out.println(ex.getMessage()); } }
prepend operation instance
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("php", 900, "Education for All"); // 输出执行 set 方法后的状态 System.out.println("set status:" + fo.get()); // 获取键对应的值 System.out.println("php value in cache - " + mcc.get("php")); // 对存在的key进行数据添加操作 Future fo = mcc.prepend("php", 900, "Free "); // 输出执行 set 方法后的状态 System.out.println("prepend status:" + fo.get()); // 获取键对应的值 System.out.println("php value in cache - " + mcc.get("codingground")); // 关闭连接 mcc.shutdown(); }catch(Exception ex) System.out.println(ex.getMessage()); } }
CAS operation instance
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("php", 900, "Free Education"); // 输出执行 set 方法后的状态 System.out.println("set status:" + fo.get()); // 使用 get 方法获取数据 System.out.println("php value in cache - " + mcc.get("php")); // 通过 gets 方法获取 CAS token(令牌) CASValue casValue = mcc.gets("php"); // 输出 CAS token(令牌) 值 System.out.println("CAS token - " + casValue); // 尝试使用cas方法来更新数据 CASResponse casresp = mcc.cas("php", casValue.getCas(), 900, "Largest Tutorials-Library"); // 输出 CAS 响应信息 System.out.println("CAS Response - " + casresp); // 输出值 System.out.println("php value in cache - " + mcc.get("php")); // 关闭连接 mcc.shutdown(); }catch(Exception ex) System.out.println(ex.getMessage()); } }
get operation instance
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("php", 900, "Free Education"); // 输出执行 set 方法后的状态 System.out.println("set status:" + fo.get()); // 使用 get 方法获取数据 System.out.println("php value in cache - " + mcc.get("php")); // 关闭连接 mcc.shutdown(); }catch(Exception ex) System.out.println(ex.getMessage()); } }
gets operation instance, 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("php", 900, "Free Education"); // 输出执行 set 方法后的状态 System.out.println("set status:" + fo.get()); // 从缓存中获取键为 php 的值 System.out.println("php value in cache - " + mcc.get("php")); // 通过 gets 方法获取 CAS token(令牌) CASValue casValue = mcc.gets("php"); // 输出 CAS token(令牌) 值 System.out.println("CAS value in cache - " + casValue); // 关闭连接 mcc.shutdown(); }catch(Exception ex) System.out.println(ex.getMessage()); } }
delete operation instance
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("php", 900, "World's largest online tutorials library"); // 输出执行 set 方法后的状态 System.out.println("set status:" + fo.get()); // 获取键对应的值 System.out.println("php value in cache - " + mcc.get("php")); // 对存在的key进行数据添加操作 Future fo = mcc.delete("php"); // 输出执行 delete 方法后的状态 System.out.println("delete status:" + fo.get()); // 获取键对应的值 System.out.println("php value in cache - " + mcc.get("codingground")); // 关闭连接 mcc.shutdown(); }catch(Exception ex) System.out.println(ex.getMessage()); } }
Incr /Decr operation example
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()); } }