在做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文件,里面相关配置,这里不再复述
执行如下代码
结果为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");