Java conectándose al servicio Memcached
Para conectar con Memcached usando un programa Java, necesitas agregar el archivo jar de Memcached a tu classpath.
Dirección de descarga del archivo jar de este sitio:。
Dirección de descarga del archivo jar en Google Code:spymemcached-2.10.3.jar(Requiere acceso a Internet mediante proxy/VPN).
El siguiente programa asume que el host del servicio Memcached es 127.0.0.1 y el puerto es 11211.
Ejemplo de conexión
Java conectándose a Memcached
Archivo MemcachedJava.java:
import net.spy.memcached.MemcachedClient;
import java.net.*;
public class MemcachedJava {
public static void main(String[] args) {
try{
//Conectar al servicio Memcached local
MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful.");
//Cerrar la conexión
mcc.shutdown();
}catch(Exception ex){
System.out.println( ex.getMessage() );
}
}
}
En este programa usamos InetSocketAddress para conectarnos al servicio Memcached con IP 127.0.0.1 y puerto 11211.
Al ejecutar el código anterior, si la conexión es exitosa se mostrará la siguiente información:
Connection to server successful.
Ejemplo de operación set
A continuación se utiliza java.util.concurrent.Future para almacenar datos
Archivo MemcachedJava.java:
import java.net.InetSocketAddress;
import java.util.concurrent.Future;
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
try{
//Conectar al servicio Memcached local
MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful.");
//Almacenar datos
Future fo = mcc.set("ejemplo", 900, "Free Education");
//Ver el estado de almacenamiento
System.out.println("set status:" + fo.get());
//Imprimir el valor
System.out.println("ejemplo value in cache - " + mcc.get("ejemplo"));
//Cerrar la conexión
mcc.shutdown();
}catch(Exception ex){
System.out.println( ex.getMessage() );
}
}
}
Al ejecutar el programa, el resultado es:
Connection to server successful. set status:true ejemplo value in cache - Free Education
Ejemplo de operación add
Archivo MemcachedJava.java:
import java.net.InetSocketAddress;
import java.util.concurrent.Future;
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
try{
//Conectar al servicio Memcached local
MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful.");
//Agregar datos
Future fo = mcc.set("ejemplo", 900, "Free Education");
//Imprimir estado
System.out.println("set status:" + fo.get());
//Salida
System.out.println("ejemplo value in cache - " + mcc.get("ejemplo"));
//Agregar
fo = mcc.add("ejemplo", 900, "memcached");
//Imprimir estado
System.out.println("add status:" + fo.get());
//Agregar nueva key
fo = mcc.add("ejemplo", 900, "All Free Compilers");
//Imprimir estado
System.out.println("add status:" + fo.get());
//Salida
System.out.println("ejemplo value in cache - " + mcc.get("ejemplo"));
//Cerrar la conexión
mcc.shutdown();
}catch(Exception ex){
System.out.println(ex.getMessage());
}
}
}
Ejemplo de operación replace
Archivo MemcachedJava.java:
import java.net.InetSocketAddress;
import java.util.concurrent.Future;
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
try {
//Conectar al servicio Memcached local
MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful.");
//Agregar el primer par clave=>valor
Future fo = mcc.set("ejemplo", 900, "Free Education");
//Imprimir el estado después de ejecutar el método add
System.out.println("add status:" + fo.get());
//Obtener el valor correspondiente a la clave
System.out.println("ejemplo value in cache - " + mcc.get("ejemplo"));
//Agregar una nueva key
fo = mcc.replace("ejemplo", 900, "Largest Tutorials' Library");
//Imprimir el estado después de ejecutar el método set
System.out.println("replace status:" + fo.get());
//Obtener el valor correspondiente a la clave
System.out.println("ejemplo value in cache - " + mcc.get("ejemplo"));
//Cerrar la conexión
mcc.shutdown();
}catch(Exception ex){
System.out.println( ex.getMessage() );
}
}
}
Ejemplo de operación append
Archivo MemcachedJava.java:
import java.net.InetSocketAddress;
import java.util.concurrent.Future;
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
try{
//Conectar al servicio Memcached local
MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful.");
//Agregar datos
Future fo = mcc.set("ejemplo", 900, "Free Education");
//Imprimir el estado después de ejecutar el método set
System.out.println("set status:" + fo.get());
//Obtener el valor correspondiente a la clave
System.out.println("ejemplo value in cache - " + mcc.get("ejemplo"));
//Realizar una operación de agregar datos a la key existente
fo = mcc.append("ejemplo", 900, " for All");
//Imprimir el estado después de ejecutar el método set
System.out.println("append status:" + fo.get());
//Obtener el valor correspondiente a la clave
System.out.println("ejemplo value in cache - " + mcc.get("ejemplo"));
//Cerrar la conexión
mcc.shutdown();
}catch(Exception ex) {
System.out.println(ex.getMessage());
]
}
}
Ejemplo de operación prepend
Archivo MemcachedJava.java:
import java.net.InetSocketAddress;
import java.util.concurrent.Future;
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
try{
//Conectar al servicio Memcached local
MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful.");
//Agregar datos
Future fo = mcc.set("ejemplo", 900, "Education for All");
//Imprimir el estado después de ejecutar el método set
System.out.println("set status:" + fo.get());
//Obtener el valor correspondiente a la clave
System.out.println("ejemplo value in cache - " + mcc.get("ejemplo"));
//Realizar una operación de agregar datos a la key existente
fo = mcc.prepend("ejemplo", 900, "Free ");
//Imprimir el estado después de ejecutar el método set
System.out.println("prepend status:" + fo.get());
//Obtener el valor correspondiente a la clave
System.out.println("ejemplo value in cache - " + mcc.get("ejemplo"));
//Cerrar la conexión
mcc.shutdown();
}catch(Exception ex) {
System.out.println(ex.getMessage());
}
}
}
Ejemplo de operación CAS
Archivo MemcachedJava.java:
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{
//Conectar al servicio Memcached local
MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful.");
//Agregar datos
Future fo = mcc.set("ejemplo", 900, "Free Education");
//Imprimir el estado después de ejecutar el método set
System.out.println("set status:" + fo.get());
//Usar el método get para obtener los datos
System.out.println("ejemplo value in cache - " + mcc.get("ejemplo"));
//Obtener el token CAS mediante el método gets
CASValue casValue = mcc.gets("ejemplo");
//Imprimir el valor del token CAS
System.out.println("CAS token - " + casValue);
//Intentar usar el método cas para actualizar los datos
CASResponse casresp = mcc.cas("ejemplo", casValue.getCas(), 900, "Largest Tutorials-Library");
//Imprimir la información de respuesta de CAS
System.out.println("CAS Response - " + casresp);
//Imprimir el valor
System.out.println("ejemplo value in cache - " + mcc.get("ejemplo"));
//Cerrar la conexión
mcc.shutdown();
}catch(Exception ex) {
System.out.println(ex.getMessage());
}
}
}
Ejemplo de operación get
Archivo MemcachedJava.java:
import java.net.InetSocketAddress;
import java.util.concurrent.Future;
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
try{
//Conectar al servicio Memcached local
MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful.");
//Agregar datos
Future fo = mcc.set("ejemplo", 900, "Free Education");
//Imprimir el estado después de ejecutar el método set
System.out.println("set status:" + fo.get());
//Usar el método get para obtener los datos
System.out.println("ejemplo value in cache - " + mcc.get("ejemplo"));
//Cerrar la conexión
mcc.shutdown();
}catch(Exception ex) {
System.out.println(ex.getMessage());
}
}
}
Ejemplo de operación gets, CAS
Archivo MemcachedJava.java:
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{
//Conectar al servicio Memcached local
MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful.");
//Agregar datos
Future fo = mcc.set("ejemplo", 900, "Free Education");
//Imprimir el estado después de ejecutar el método set
System.out.println("set status:" + fo.get());
//Obtener de la caché el valor de la clave ejemplo
System.out.println("ejemplo value in cache - " + mcc.get("ejemplo"));
//Obtener el token CAS mediante el método gets
CASValue casValue = mcc.gets("ejemplo");
//Imprimir el valor del token CAS
System.out.println("CAS value in cache - " + casValue);
//Cerrar la conexión
mcc.shutdown();
}catch(Exception ex) {
System.out.println(ex.getMessage());
}
}
}
Ejemplo de operación delete
Archivo MemcachedJava.java:
import java.net.InetSocketAddress;
import java.util.concurrent.Future;
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
try{
//Conectar al servicio Memcached local
MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful.");
//Agregar datos
Future fo = mcc.set("ejemplo", 900, "World's largest online tutorials library");
//Imprimir el estado después de ejecutar el método set
System.out.println("set status:" + fo.get());
//Obtener el valor correspondiente a la clave
System.out.println("ejemplo value in cache - " + mcc.get("ejemplo"));
//Realizar una operación de agregar datos a la key existente
fo = mcc.delete("ejemplo");
//Imprimir el estado después de ejecutar el método delete
System.out.println("delete status:" + fo.get());
//Obtener el valor correspondiente a la clave
System.out.println("ejemplo value in cache - " + mcc.get("ejemplo"));
//Cerrar la conexión
mcc.shutdown();
}catch(Exception ex) {
System.out.println(ex.getMessage());
}
}
}
Ejemplo de operación Incr/Decr
Archivo MemcachedJava.java:
import java.net.InetSocketAddress;
import java.util.concurrent.Future;
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
try{
//Conectar al servicio Memcached local
MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server successful.");
//Agregar un valor numérico
Future fo = mcc.set("number", 900, "1000");
//Imprimir el estado después de ejecutar el método set
System.out.println("set status:" + fo.get());
//Obtener el valor correspondiente a la clave
System.out.println("value in cache - " + mcc.get("number"));
//Incrementar y mostrar
System.out.println("value in cache after increment - " + mcc.incr("number", 111));
//Decrementar y mostrar
System.out.println("value in cache after decrement - " + mcc.decr("number", 112));
//Cerrar la conexión
mcc.shutdown();
}catch(Exception ex) {
System.out.println(ex.getMessage());
}
}
}