`

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: '小明' ...

    Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析

    在Python编程语言中,类方法、实例方法和静态方法是面向对象编程的重要组成部分。它们各自有不同的用途和调用方式,帮助我们更好地组织和管理代码。接下来我们将深入探讨这些概念及其用法。 首先,实例方法是类中最...

    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. ...

    C#中静态方法和实例化方法的区别、使用

    在C#编程语言中,静态方法和实例化方法是两种不同的方法类型,它们在使用场景和功能上有所区别。理解这些差异对于编写高效且结构良好的代码至关重要。 首先,让我们来看看定义方法的一般格式: ```csharp 访问修饰...

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

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

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

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

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

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

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

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

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

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

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

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

    94.java方法2实例.zip

    94.java方法2实例.zip94.java方法2实例.zip94.java方法2实例.zip94.java方法2实例.zip94.java方法2实例.zip94.java方法2实例.zip94.java方法2实例.zip94.java方法2实例.zip94.java方法2实例.zip94.java方法2实例.zip...

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

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

    实例化Spring bean的两种工厂方法

    本篇将详细探讨两种工厂方法——实例工厂方法和静态工厂方法,用于创建Spring Bean。 首先,我们要理解Spring Bean的概念。Spring Bean是Spring IoC容器管理的对象,这些对象的生命周期、依赖关系以及初始化行为由...

    myeclipse -get set方法生成注释和字段注释以及具体设置步骤

    - 或者,你也可以在生成Getters和Setters时,勾选对话框中的“Add comments to generated methods”选项,MyEclipse会为每个生成的方法添加默认注释,但不会为字段生成注释。 3. **设置生成规则** - 要自定义...

Global site tag (gtag.js) - Google Analytics