MemCached Java Client 有API吗

2025-04-24 01:55:05
推荐回答(3个)
回答1:

有的。下面是一些基础的api。
1. 构造函数
public MemcachedClient(InetSocketAddress[] ia) throws IOException;
public MemcachedClient(List addrs) throws IOException;
public MemcachedClient(ConnectionFactory cf, List addrs) throws IOException;

其中最简单的构造函数就是第一个,可以直接传递一个InetSocketAddress,也可以是InetSocketAddress的数组。其实InetSocketAddress也是被转换成数组的。
比如:
MemcachedClient cache = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));

2. 常用方法
一般缓存数据的常用操作有:set(add+replace)、get、replace、add
public Future set(String key, int exp, Object o)

第一个参数:键(key)
第二个参数:过期时间(单位是秒)
第三个参数:要设置缓存中的对象(value),如果没有则插入,如果有则修改。
public Object get(String key)

第一个参数:键(key)
public Future replace(String key, int exp, Object o)

第一个参数:键(key)
第二个参数:过期时间(单位是秒)
第三个参数:该键的新值(new value),如果有则修改。
public Future add(String key, int exp, Object o)
第一个参数:键(key)
第二个参数:过期时间(单位是秒)
第三个参数:该键的值(value),如果没有则插入。

回答2:

这要看你的存储是用的是什么数据结构啊?不同的数据存储数据结构遍历方式肯定就不一样埃 比如说java常用的HashMap,HashSet和ArrayList等。

回答3:

packagecom.ghj.packageofclient;importjava.util.Date;importjunit.framework.TestCase;importcom.ghj.packageoftool.MemcachedUtils;publicclassClientextendsTestCase{/***测试MemcachedUtils类的set方法。**@authorGaoHuanjie*/publicstaticvoidtestSet1(){MemcachedUtils.set("set1Description","调用MemcachedUtils类的set方法,没有设置键值对的存在时长");System.out.println(MemcachedUtils.get("set1Description").toString());}/***测试MemcachedUtils类的set方法。**@authorGaoHuanjie*/publicstaticvoidtestSet2(){MemcachedUtils.set("set2Description","调用MemcachedUtils类的set方法,设置了键值对的存在时长——存在60秒",newDate(1000*60));System.out.println(MemcachedUtils.get("set2Description").toString());}/***测试MemcachedUtils类的add方法。**@authorGaoHuanjie*/publicstaticvoidtestAdd1(){MemcachedUtils.add("add1Description","调用MemcachedUtils类的add方法,没有设置键值对的存在时长");System.out.println(MemcachedUtils.get("add1Description").toString());}/***测试MemcachedUtils类的add方法。**@authorGaoHuanjie*/publicstaticvoidtestAdd2(){MemcachedUtils.add("add2Description","调用MemcachedUtils类的add方法,设置了键值对的存在时长——存在60秒",newDate(1000*60));System.out.println(MemcachedUtils.get("add2Description").toString());}/***测试MemcachedUtils类的replace方法。**@authorGaoHuanjie*/publicstaticvoidtestReplace1(){MemcachedUtils.add("replace1Description","调用MemcachedUtils类的replace方法,没有设置键值对的存在时长");MemcachedUtils.replace("replace1Description","值改变了!!!");System.out.println(MemcachedUtils.get("replace1Description").toString());}/***测试MemcachedUtils类的replace方法。**@authorGaoHuanjie*/publicstaticvoidtestReplace2(){MemcachedUtils.add("replace2Description","调用MemcachedUtils类的replace方法,设置了键值对的存在时长——存在60秒",newDate(1000*60));MemcachedUtils.replace("replace2Description","值改变了!!!",newDate(1000*60));System.out.println(MemcachedUtils.get("replace2Description").toString());}/***测试MemcachedUtils类的get方法。**@authorGaoHuanjie*/publicstaticvoidtestGet(){MemcachedUtils.add("getDescription","调用MemcachedUtils类的get方法,没有设置键值对的存在时长");System.out.println(MemcachedUtils.get("getDescription").toString());}/***测试MemcachedUtils类的delete方法。**@authorGaoHuanjie*/publicstaticvoidtestDelete1(){MemcachedUtils.add("delete1Description","调用MemcachedUtils类的delete方法,没有设置键值对的逾期时长");MemcachedUtils.delete("delete1Description");assertEquals(null,MemcachedUtils.get("delete1Description"));}/***测试MemcachedUtils类的delete方法。**@authorGaoHuanjie*/publicstaticvoidtestDelete2(){MemcachedUtils.set("delete2Description1","调用MemcachedUtils类的delete方法,设置键值对的逾期时长",newDate(600*1000));MemcachedUtils.delete("delete2Description1",newDate(1000*600));assertEquals(null,MemcachedUtils.get("delete2Description1"));}/***测试MemcachedUtils类的flashAll方法。**@authorGaoHuanjie*/publicstaticvoidtestFlashAll(){MemcachedUtils.add("flashAllDescription","调用MemcachedUtils类的delete方法,没有设置键值对的预期时长");MemcachedUtils.flashAll();assertEquals(null,MemcachedUtils.get("flashAllDescription"));}}