使用memcache的两种实现jar包:
1、使用net.py.spymemcached:
1)在pom.xml中添加对net.py.spymemcached的依赖;
<dependency> <groupId>net.spy</groupId> <artifactId>spymemcached</artifactId> <version>2.11.0</version> </dependency>
2)使用Demo:
package spymemcached; import java.io.IOException; import java.io.Serializable; import java.net.InetSocketAddress; import java.util.Date; import net.spy.memcached.MemcachedClient; public class MemcacheUse { private static class MyData implements Serializable { private static final long serialVersionUID = 1L; private long d = new Date().getTime(); public String toString() { return "my data [" + d + "]" ; } } public static void main(String[] args) throws IOException { MyData myData = new MyData(); MemcachedClient c = new MemcachedClient (new InetSocketAddress( "127.0.0.1", 11211)); // Store a value (async) for one hour c.set( "someKey", 3600, myData); // Retrieve a value (synchronously). MyData myObject = (MyData) c.get( "someKey"); c.shutdown(); System. out.println(myObject.toString()); } }
3)使用Demo,根据需求进行封装的类:
package com.practice.cache; import java.io.IOException; import java.net.InetSocketAddress; import org.springframework.stereotype.Component; import net.spy.memcached.MemcachedClient; import net.spy.memcached.internal.OperationFuture; @Component public class PhonePtCache { private MemcachedClient client; private String hostName = "127.0.0.1"; private int port = 11211; private int time = 3600; public PhonePtCache() { try { client = new MemcachedClient(new InetSocketAddress(hostName,port)); } catch (IOException e) { e.printStackTrace(); } } public OperationFuture<Boolean> set(String key, Object o) { return client.set(key, time, o); } public Object get(String key) { return client.get(key); } public OperationFuture<Boolean> delete(String key) { return client.delete(key); } }
2、使用com.whalin.Memcached-Java-Client
1)在pom.xml中添加依赖:
<dependency> <groupId>com.whalin</groupId> <artifactId>Memcached-Java-Client</artifactId> <version>3.0.2</version> </dependency>
2)使用Demo
package spymemcached; import com.whalin.MemCached.MemCachedClient; import com.whalin.MemCached.SockIOPool; public class MemCacheInvoke { protected static MemCachedClient mcc = new MemCachedClient(); static{ // 设置缓存服务器列表,当使用分布式缓存的时,可以指定多个缓存服务器。(这里应该设置为多个不同的服务器) String[] servers = { "127.0.0.1:11211", }; // 设置服务器权重 Integer[] weights = {3, 2}; // 创建一个Socked连接池实例 SockIOPool pool = SockIOPool. getInstance(); // 向连接池设置服务器和权重 pool.setServers(servers); pool.setWeights(weights); // set some TCP settings // disable nagle // set the read timeout to 3 secs // and don't set a connect timeout pool.setNagle( false); pool.setSocketTO(3000); pool.setSocketConnectTO(0); // initialize the connection pool pool.initialize(); } public static void main(String[] args) { mcc.set("foo" , "This is a test String" ); String bar = mcc.get("foo" ).toString(); System. out.println(">>> " + bar); } }
扫描二维码关注公众号,回复:
611466 查看本文章