`

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

阅读更多

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

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

2XMemcachedClient.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");




 

 

分享到:
评论

相关推荐

    详解vue 实例方法和数据

    Vue 实例方法和数据 Vue 实例方法和数据是 Vue.js 框架中非常重要的两个概念。Vue 实例方法是指 Vue COMPONENT 实例对象上的方法,而数据则是指 Vue 实例对象上的数据属性。 首先,让我们来了解一下 Vue 实例方法...

    ActionForm里的get和set方法

    - **set方法**:在用户提交表单后,Struts框架会自动遍历请求参数,对每个找到的参数调用ActionForm实例上的对应set方法。例如,如果表单中有名为`username`的输入字段,Struts会调用`setUsername(String username)...

    Matlab_Active-set算法和实例

    Active-set方法是一种在优化问题中解决凸二次规划(Quadratic Programming, QP)的有效算法。它主要应用于处理约束优化问题,尤其在那些包含线性不等式约束的情况下。在Matlab环境中,利用Active-set算法能够高效地...

    java中set、list和map的使用方法实例

    // java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...

    vue.js get和set方法使用

    当我们需要对这些数据进行更复杂的操作时,Vue提供了`get`和`set`方法,它们允许我们自定义数据访问和更新的逻辑。这篇博客将深入探讨Vue.js中的`get`和`set`方法的使用。 首先,`get`和`set`是Vue.js响应式系统的...

    C# snmp get和set方法实现,含源码

    1. 创建SNMP客户端实例,配置版本、社区字符串(对于V1和V2c)或认证和加密参数(对于V3)。 2. 构建GET或SET请求PDU,包括目标OID和(对于SET)新值。 3. 发送请求并等待响应,这通常涉及到异步调用。 4. 解析响应...

    【JavaScript源代码】Vue.set()和this.$set()使用和区别.docx

    这两种方法的使用场景和区别如下: 1. **Vue.set()**: - 可以用来修改Vue实例根级别的数据,也可以用于嵌套对象的属性。例如: ```javascript const app = new Vue({ data: { a: 1, info: { name: '小明' ...

    DC工具中set_dont_touch和set_size_only的区别.doc

    总结来说,`set_dont_touch` 与 `set_size_only` 的主要区别在于: 1. 应用范围:`set_dont_touch` 可作用于更广泛的实体,包括 cell、net、reference 和 design;而 `set_size_only` 只能作用于 leaf cell。 2. ...

    Java静态方法和实例方法区别详解

    在设计类和方法时,应根据它们是否需要访问实例变量以及是否与特定对象实例相关来决定使用静态还是实例方法。合理的使用静态方法和实例方法可以提高代码的可读性、可维护性和性能。在实际编程中,要根据具体需求灵活...

    Python实例方法、类方法、静态方法区别详解

    ### Python实例方法、类方法、静态方法的区别详解 在Python编程语言中,方法是与类相关的函数,它们根据其用途和定义方式分为三类:实例方法、类方法和静态方法。这三种方法各有特点,适用于不同的场景。接下来,...

    python字典setdefault方法和get方法使用实例

    为了更加形象地展示这两个方法的用法和区别,让我们通过一些示例来进行说明。 假设我们有以下字典: ```python d = {"x": 1, "y": 2} ``` 如果我们尝试获取一个字典中存在的键值: ```python print(d.get("x")) ...

    华为企业架构设计方法及实例.pptx

    本资料围绕企业架构现状分析、企业架构内容框架、企业架构设计方法等方面阐述华为企业架构设计方法及实例。

    华为企业架构设计方法及实例 P105.pptx

    华为企业架构设计方法及实例 P105.pptx

    JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析

    类的静态方法、静态变量、实例方法和实例变量是构建类的关键组成部分。这些特性使得JavaScript能够更好地支持面向对象编程。 1. **类的静态方法**: - 类的静态方法是直接绑定到类本身而不是类的实例上的函数。...

    c#f方法和函数的区别

    ### C#中方法与函数的区别 #### 方法与函数的基本概念 在C#中,方法(Method)和函数(Function)这两个...此外,属性是一种特殊的成员,它结合了字段和方法的功能,提供了更安全且方便的方式来访问类的内部状态。

    python 实例方法和类方法的应用 示例

    python 实例方法和类方法的应用 示例

    Level Set Methods and Dynamic Implicit Surfaces

    《Level Set Methods and Dynamic Implicit Surfaces》这本书不仅详细介绍了Level Set Methods的理论基础和计算方法,还提供了丰富的实例和应用,对于想要深入理解和应用Level Set Methods的读者来说,是一本非常有...

    hibernate_集合映射_set方法

    建表方法详见set实例文件夹 2,建立表的hibernate支持,生成tb_user类和对应的配置文件 3,修改配置文件使之和相应的类对应, 4,修改tb_user类,创建一个set类型的字段emailes,生成它的set和get方法 5,写测试类,...

    ANSYS LS-DYNA动力分析方法与工程实例(第二版)

    《ANSYS LS-DYNA动力分析方法与工程实例(第二版)》是一部深入探讨ANSYS LS-DYNA软件在动力学分析领域的专著。该书不仅涵盖了基础理论,还提供了丰富的工程实例,旨在帮助读者理解和掌握如何利用这款强大的非线性...

    通过java类的路径实例化类并调用方法

    通过java类的路径实例化类并调用方法:仅仅知道类的路径,就可以实例化对象,利用反射机制调用其方法

Global site tag (gtag.js) - Google Analytics