`
陈yun77
  • 浏览: 33108 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

memcached 的简单命令和Java 使用 memcached 的简单例子

阅读更多
简单的基本命令
Set:set 命令用于向缓存添加新的键值对。如果键已经存在,则之前的值将被替换。
Add:仅当缓存中不存在键时,add 命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同,并且您将获得响应 NOT_STORED。
Replace:仅当键已经存在时,replace 命令才会替换缓存中的键。如果缓存中不存在键,那么您将从 memcached 服务器接受到一条 NOT_STORED 响应
Get:get 命令用于检索与之前添加的键值对相关的值。您将使用 get 执行大多数检索操作。
Delete:最后一个基本命令是 delete。delete 命令用于删除 memcached 中的任何现有值。您将使用一个键调用delete,如果该键存在于缓存中,则删除该值。如果不存在,则返回一条NOT_FOUND 消息。
Gets: gets 命令的功能类似于基本的 get 命令。两个命令之间的差异在于,gets 返回的信息稍微多一些:64 位的整型值非常像名称/值对的 “版本” 标识符。
Cas :cas(check 和 set)是一个非常便捷的 memcached 命令,用于设置名称/值对的值(如果该名称/值对在您上次执行 gets 后没有更新过)。它使用与 set 命令相类似的语法,但包括一个额外的值:gets 返回的额外值。
flush_all  :flush_all 是最后一个要介绍的命令。这个最简单的命令仅用于清理缓存中的所有名称/值对。如果您需要将缓存重置到干净的状态,则 flush_all 能提供很大的用处

创建java项目应用memcached
首先到http://danga.com/memcached/下载memcached的windows版本和java客户端jar包,解压后我放到D盘下。首先是安装运行memcached服务器,我们将memcached的jar解压后,进入其目录,然后运行如下命令:

D:\ memcached1.4> memcached.exe -d install
在eclipse中建立java项目,导入commons-pool-1.5.6.jar,java_memcached-release_2.6.1.jar,slf4j-api-1.6.1.jar,slf4j-simple-1.6.1.jar四个jar包

项目代码入下

package com.yun.Memcahed.cache;

import java.util.Date;

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

/**
* ClassName:Mycache <br/>
* Function: TODO ADD FUNCTION. <br/>
* Reason: TODO ADD REASON. <br/>
* Date:     2013-1-11 上午11:08:05 <br/>
* @version 
* @since    JDK 1.6
* @see
*/
public class Mycache {

    // 创建一个 memcached 客户端对象
   private   static  MemCachedClient client=new MemCachedClient();     
   protected static Mycache memCached = new Mycache();
        // 创建  memcached连接池
        static{
        // 指定memcached服务地址
        String [] addr ={"127.0.0.1:11211"}; 
        // 指定memcached服务器负载量
             Integer [] weights = {3}; 
             // 从连接池获取一个连接实例
             SockIOPool pool = SockIOPool.getInstance(); 
             // 设置服务器和服务器负载量
             pool.setServers(addr); 
             pool.setWeights(weights);
             // 设置一些基本的参数
             //设置初始连接数5   最小连接数 5   最大连接数 250
             //设置一个连接最大空闲时间6小时
             pool.setInitConn(5); 
             pool.setMinConn(5); 
             pool.setMaxConn(250); 
             pool.setMaxIdle(1000*30*30); 
             // 设置主线程睡眠时间
             // 每隔30秒醒来  然后
             // 开始维护 连接数大小
             pool.setMaintSleep(30);
             // 设置tcp 相关的树形
             // 关闭nagle算法
             //  不设置连接超时
             pool.setNagle(false); 
             pool.setSocketTO(30); 
             pool.setSocketConnectTO(0); 
          // 开始初始化 连接池
             pool.initialize();
 
          
       
        }
       
        /**
         * getInstance:无参的构造函数. <br/>
         * @return
         * @since JDK 1.6
         */
        protected Mycache()
        {
            
        }
       
        /**
         * getInstance:方法返回memCached. <br/>
         * @return memCached的实例
         * @since JDK 1.6
         */
        public static Mycache getInstance()
        {
            return memCached;
        }

        /**
         * set:对Memcahed的set 命令的封装用于向缓存添加新的键值对。如果键已经
*在,则之前的值将被替换. <br/>
         * @param key
         * @param value
         * @return
         * @since JDK 1.6
         */
        public boolean set(String key, Object value)
        {
            return client.set(key, value);
        }
        
        /**
         * add:对Memcahed的add命令仅当缓存中不存在键时,add 命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同,并且您将获得响应 NOT_STORED. <br/>
         * @param key
         * @param value
         * @param expiry 在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
         * @return
         * @since JDK 1.6
         */
        public boolean add(String key, Object value, Date expiry)
        {
            return client.add(key, value, expiry);
        }
       
        /**
         * add:对Memcahed的add命令的封装仅当缓存中不存在键时,add 命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同,并且您将获得响应 NOT_STORED. <br/>
         * @param key
         * @param value
         * @return
         * @since JDK 1.6
         */
        public boolean add(String key, Object value)
        {
            return client.add(key, value);
        }
       
        /**
         * add:对Memcahed的add命令的封装仅当缓存中不存在键时,add 命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同,并且您将获得响应 NOT_STORED. <br/>
         * @param key
         * @param value
         * @return
         * @since JDK 1.6
         */
        public boolean replace(String key, Object value)
        {
            return client.replace(key, value);
        }
       
        /**
         * replace:对Memcahed的replace命令仅当键已经存在时,replace 命令才会替换缓存中的键。如果缓存中不存在键,那么您将从 memcached 服务器接受到一条 NOT_STORED 响应. <br/>
         * @param key
         * @param value
         * @param expiry
         * @return
         * @since JDK 1.6
         */
        public boolean replace(String key, Object value, Date expiry)
        {
            return client.replace(key, value, expiry);
        }
        
        /**
         * delete:对Memcahed的delete命令的封装。delete 命令用于删除 memcached 中的任何现有值。您将使用一个键调用delete,如果该键存在于缓存中,则删除该值。. <br/>
         * @param key
         * @param value
         * @param expiry
         * @return
         * @since JDK 1.6
         */
        public boolean delete(String key)
        {
            return client.delete(key);
        }
       
        /**
         * get:get对Memcahed的get命令的封装 命令用于检索与之前添加的键值对相关的值. <br/>
         * @param key
         * @return
         * @since JDK 1.6
         */
        public Object get(String key)
        {
            return client.get(key);
           
        }
       
        /**
         * gets:gets 命令的功能类似于基本的 get 命令。两个命令之间的差异在于,gets 返回的信息稍微多一些:64 位的整型值非常像名称/值对的 “版本” 标识符. <br/>
         * @param key
         * @return
         * @since JDK 1.6
         */
        public Object gets(String key){
       
        return client.gets(key);
        }
       
       
       
        /**
         * flushAll:用于清理缓存中的所有名称/值对。如果您需要将缓存重置到干净的状态,则 flush_all 能提供很大的用处. <br/>
         * @return
         * @since JDK 1.6
         */
        public boolean flushAll(){
       
        return client.flushAll();
       
        }
        
        public static void main(String[] args)
        {
        Mycache cache = Mycache.getInstance();
            cache.set("zf", 18);
            cache.replace("zf", 20);
            cache.set("zf1", 19);
           // cache.delete("zf");
            System.out.println("zf get value : " + cache.get("zf"));
            System.out.println("zf get value : " + cache.get("zf1"));
            /*cache.flushAll();
            System.out.println(1);
            System.out.println("zf get value : " + cache.get("zf"));
            System.out.println("zf get value : " + cache.get("zf1"));*/
            System.out.println("zf get value"+cache.gets("zf"));
           
        }
      
}
分享到:
评论
3 楼 ldwtill 2013-01-14  
不错,继续努力,记博客的习惯要坚持下去啊~
2 楼 chenzhou123520 2013-01-11  
chenzhou123520 写道
不错,应该是第一篇博客吧,发代码时可以使用编辑器自带的代码编辑工具,这样阅读性会更好

加油
1 楼 chenzhou123520 2013-01-11  
不错,应该是第一篇博客吧,发代码时可以使用编辑器自带的代码编辑工具,这样阅读性会更好

相关推荐

    java使用Memcached简单教程

    ### Java使用Memcached简单教程 #### 一、简介 Memcached是一个高性能的分布式内存对象缓存系统,通过减轻数据库负载来加速动态Web应用,提高网站的浏览速度。它通过在内存中缓存数据和对象来减少读取数据库的次数...

    memcached 的简单java实例

    以下是一个简单的Java实例,演示如何使用Spymemcached连接到Memcached服务器并执行基本操作: 1. **添加依赖** 首先,你需要在项目中添加Spymemcached的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下...

    JAVA-memcached简单例子

    - 在提供的压缩包中,可能包含了简单的Java代码示例,如`memcached`和`memcached2`两个文件。这些文件可能演示了如何创建客户端,存储和检索数据的基本步骤。通过阅读和运行这些示例,你可以更好地理解Java与...

    Memcached java的使用实例

    本文将深入讲解如何在Java环境下集成和使用Memcached。 首先,我们需要在Java项目中引入Memcached的客户端库。常见的Java Memcached客户端有spymemcached和xmemcached,这里以spymemcached为例。可以通过Maven在`...

    java使用memcached的实例

    接下来,我们来看一个简单的Java Action类,名为`MemcachedAction.java`,展示了如何在项目中使用Memcached服务: ```java package fi.ltrade.memcached; import java.io.Serializable; import java.util....

    memcached java简单实例

    **标题:“memcached java简单实例”** 在Java开发中,我们常常会遇到缓存的需求,以提高应用程序的性能。Memcached是一款高效的分布式内存对象缓存系统,它能够将数据存储在内存中,从而减少对数据库的访问。这篇...

    MemCached开发java客户端的使用

    这是MemCached的java客户端连接使用的例子,里面包含了MemCached的增删改查操作,对字符串 list set map 对象的操作等。看就会就入门了,

    memcached for java client 例子

    "memcached for java client 例子" 指的是一个使用Java语言编写的客户端库,用于与memcached缓存系统进行交互。Memcached是一种高性能、分布式内存对象缓存系统,常用于减轻数据库负载,提升Web应用的响应速度。 **...

    memcached安装包以及java所需的memcached架包

    2. **初始化连接**:在代码中,首先需要创建一个Memcached客户端实例,通常使用Spymemcached或XMemcached等客户端库,指定memcached服务器的地址和端口。 3. **操作缓存**:现在你可以开始进行基本的缓存操作,如`...

    MemCached 简单配置和使用.doc

    以下是对Memcached简单配置和使用的详细说明: **第一步:引入iBOS jar包** 在使用Memcached之前,首先需要确保你的应用程序中包含了必要的库文件。将iBOS相关的jar包放入应用的lib目录下,这样你的应用程序就能...

    java_memcached-release_2.5.1.jar Memcache java jar 包

    `MemCachedManager.java`可能是库中的一个类,用于管理Memcached实例,帮助用户更方便地连接、操作和管理缓存。 这个库的核心功能包括: 1. **连接管理**:库提供了一种方式来建立和维护到Memcached服务器的连接。...

    java中连接memcached服务器

    接下来,我们将深入探讨如何在Java环境中配置和使用Memcached。 首先,要连接到Memcached服务器,你需要一个Java客户端库。常见的有spymemcached和XMemcached。这里我们以spymemcached为例,因为它是社区中广泛使用...

    Memcached实例与文档

    4. 连接:使用支持Memcached的客户端库(如Python的pylibmc,Java的spymemcached)连接到服务器实例。 5. 存储与检索:将数据存储到Memcached中,使用键值对进行标识,然后根据键来检索数据。 三、Java与Memcached ...

    memcached与JAVA实例文档

    通过以上介绍,我们可以了解到Memcached在Java应用中的重要作用和使用方式。了解并熟练掌握Memcached的使用,能够显著提升Web应用的性能,有效解决高并发场景下的数据处理问题。对于Java开发者来说,这是一项必备的...

    memcached缓存使用演示

    例如,对于Python,可以使用`python-memcached`库,Java有`spymemcached`,PHP有`php-memcached`等。以下是一些基本操作: - **添加缓存**:使用`set(key, value, timeout)`方法,将键值对存入缓存,`timeout`表示...

    memcached java client

    2. 创建连接:初始化客户端实例,指定Memcached服务器的地址和端口。 3. 存储和检索数据:使用客户端提供的API进行数据的存储和读取,如`set(key, expire, value)`和`get(key)`。 4. 关闭连接:在不再需要时,关闭...

    memcached实例

    **Memcached 实例详解** ...通过以上的实例和讲解,你应该已经掌握了 Memcached 的基本使用,包括安装、客户端连接、数据缓存和清除。在实际应用中,合理利用 Memcached 可以显著提升系统的性能和响应速度。

    memcached-1.2.1-win32.zip 和 java_memcached-release_1.6.zip

    `memcached-1.2.1-win32.zip` 提供了Memcached服务端,而`java_memcached-release_1.6.zip` 提供了Java客户端,使得开发者能够轻松地在Java环境中集成和使用Memcached。学习和掌握这些资源,将有助于构建更加快速、...

    Memcached使用--使用

    与Redis相比,Memcached更简单,专注于高速缓存,而Redis提供了更多的数据结构和持久化功能。选择哪种取决于具体应用场景和需求。 总结,Memcached作为一个高效的内存缓存系统,对于提升Web应用性能有着显著作用。...

    memcaChed java client jar包

    例如,你可以使用流行的Spymemcached或Xmemcached客户端库,它们提供了简单易用的API来操作Memcached。 Spymemcached是一个流行的Java Memcached客户端,它支持异步操作,并且性能出色。使用Spymemcached时,你需要...

Global site tag (gtag.js) - Google Analytics