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

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

  1561人阅读  评论(0)  收藏  举报
  分类:

在做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文件,里面相关配置,这里不再复述

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


执行如下代码

  1. System.out.println(xmc.add("hello"0"ppms"));  
  1. 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");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值