XMemcachedClient实例的add方法和set方法区别

来源:互联网 发布:python解压zip文件 编辑:程序博客网 时间:2024/04/28 03:34

在做memcached存取数据的时候,我们得到XMemcachedClient实例后,向memcached中存数据的方法是

1 XMemcachedClient.set(String key,int time,Object value);

2 XMemcachedClient.add(String key,int time,Object value);

首先说,这两种方法一定都能向memcached中存数据,但是二者有什么区别呢?

上网查了很多资料,都没有看到有解释的,于是我决定自己试图测试分析一下:

测试代码:

加载spring的bean.xml文件,里面相关配置,这里不再复述

        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");        XMemcachedClient xmc=(XMemcachedClient) context.getBean("memcachedClient");


执行如下代码

System.out.println(xmc.add("hello", 0, "ppms"));

结果为true

很正常

但是这行代码执行两次,第二次就会有错误,原因很简单,XMemcachedClient的add方法不允许key值相等,即内存中有key为hello的值了,再次执行

add方法,就会失败。而经过测试,第二次执行xmc.set("hello",0,"ppms");就不会出错,原因是set方法在缓存服务器上,没有对应的key,便新建key-value,

如果有,就替换该key对应的value值。


综上:set和add方法的不同之处是add方法不允许key值相同,如果第二次add的key相同,则存储失败,而set方法允许key相同,如果相同,则替换该key对应的value。

注:每次做测试的时候,第一次add或set后,第二次测试的时候,应该先将memcached中该key所对应的值删除掉,否则该值一直存在缓存服务器中,影响测试结果。

删除方法很简单:xmc.delete("hello");






原创粉丝点击