zoukankan      html  css  js  c++  java
  • XMemcached简单使用示例

    Memcached的Java客户端目前有三个:

    本文以Maven来构建项目,简单展示XMemcached的使用。

    1. 首先使用Maven的骨架简单构造一个项目;
      mvn archetype:generate
      我这里给出默认都是序号为16的“ org.apache.maven.archetypes:maven-archetype-quickstart”;回车;
      然后依次输入groupId:net.oseye,artifactId:DemoXMemcached,默认的版本号,默认的packeage,最后“Y”,创建项目。
    2. 修改Pom.xml,加入:
      <dependency>
      	<groupId>com.googlecode.xmemcached</groupId>
      	<artifactId>xmemcached</artifactId>
      	<version>1.4.3</version>
      </dependency>
      编译一下:
      chaed & mvn ccd DemoXMemompile
    3. 这时项目就构建好了,可以生成Eclipse项目,来用功能强大的Eclipse来编辑项目:
      mvn eclipse:eclipse
    4. 使用eclipse把DemoXMemcached项目Import进来:

    5. 因为XMemcached使用了SLF4J框架,而从上面的应用类库来看,显然没有绑定日志框架,由SLF4J知识,我们知道需要在Pom.xml在添加一个依赖:
      <dependency> 
      	<groupId>org.slf4j</groupId>
      	<artifactId>slf4j-log4j12</artifactId>
      	<version>1.7.5</version>
      </dependency>
      再编译一下,下载依赖库。
    6. 再重新生成eclipse项目,就能看到引用类库如:

      现在虽然依赖库都齐全了,就需要添加log4j的配置文件了,关于Log4j的配置文件请参考之前的文章,简单配置文件“log4j.properties”内容:
      log4j.rootLogger=INFO,CONSOLE
      log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
      log4j.appender.Threshold=WARN  
      log4j.appender.CONSOLE.Target=System.out 
      log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
      log4j.appender.CONSOLE.layout.ConversionPattern=[%-5p]%d{yyyy-MM-dd HH:mm:ssS} %c %m%n
    7. 关于“log4j.properties”放在哪里呢?这又是Maven的约定优先配置的原则了,其实我们打开pom.xml,切换至于"Effective POM"面板,就能发现:

      PS:只有安装了Eclipse的Maven插件才能看到上面的图示,
      • Overview:显示maven项目的一些基本信息.
      • Dependencies:添加jar包的页面,很重要!
      • Plugins:添加maven插件的页面.比如tomcat-maven-plugin等.
      • Dependency Hierarchy:用于显示jar包的依赖关系.没事的时候可以看看jar包的依赖关系.
      • Effective POM:显示maven的编译路径,plugin之类的.可以无视.
      可以看到资源文件应在的目录,其实配置文件就是一种资源文件,所以我们可以把log4j.properties放在"srcmain esources"里:

      Log4j默认加载根目录的“log4j.properties”,如果你的路径不是这样的,则需要另行配置,这里不再赘述。
    8. XMemcached示例Demo:
      package net.oseye;
      
      import java.io.IOException;
      import net.rubyeye.xmemcached.MemcachedClient;
      import net.rubyeye.xmemcached.MemcachedClientBuilder;
      import net.rubyeye.xmemcached.XMemcachedClientBuilder;
      import net.rubyeye.xmemcached.utils.AddrUtil;
      
      public class App 
      {
          public static void main( String[] args ) throws IOException
          {
      		MemcachedClientBuilder builder = new XMemcachedClientBuilder(
      		        AddrUtil.getAddresses("168.192.0.75:11211"));
      		MemcachedClient memcachedClient = builder.build();
      		
      		try {
                  memcachedClient.set("hello", 0, "Hello,xmemcached");
                  String value = memcachedClient.get("hello");
                  System.out.println("hello 值:"+value);
      		}catch (Exception e) {
      		}
      		try {
      		    memcachedClient.shutdown();
      		} catch (IOException e) {
                  System.err.println("Shutdown MemcachedClient fail");
                  e.printStackTrace();
      		}
          }
      }
      运行输出类似:

      [WARN ]2014-03-18 15:32:50515 net.rubyeye.xmemcached.XMemcachedClient XMemcachedClient use Text protocol
      [INFO ]2014-03-18 15:32:50687 com.google.code.yanf4j.nio.impl.SelectorManager Creating 4 reactors...
      [WARN ]2014-03-18 15:32:50750 com.google.code.yanf4j.core.impl.AbstractController The Controller started at localhost/127.0.0.1:0 ...
      [WARN ]2014-03-18 15:32:50765 com.google.code.yanf4j.core.impl.AbstractController Add a session: 192.168.0.75:11211
      hello 值:Hello,xmemcached
      [INFO ]2014-03-18 15:32:50796 com.google.code.yanf4j.core.impl.AbstractController Controller has been stopped.
      [WARN ]2014-03-18 15:32:50796 com.google.code.yanf4j.core.impl.AbstractController Remove a session: 192.168.0.75:11211

      可见把XMemcached以及yanf4j框架的日志都打印出来了,这样看着很不爽,修改下配置文件“log4j.properties”,让XMemcached和yanf4j只打印ERROR级别的日志,以便发现异常:
      log4j.rootLogger=INFO,CONSOLE
      log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
      log4j.appender.Threshold=WARN  
      log4j.appender.CONSOLE.Target=System.out 
      log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
      log4j.appender.CONSOLE.layout.ConversionPattern=[%-5p]%d{yyyy-MM-dd HH:mm:ssS} %c %m%n
      
      log4j.logger.com.google=ERROR
      log4j.logger.net.rubyeye=ERROR
      运行输出:

      hello 值:Hello,xmemcached

      这样就清爽多了,关于更多的使用帮助,请看官方文档(好在是中文)。

    PS:最好使用eclipse的maven插件,应用使用Maven生成的eclipse工程,有的时候不知道啥原因,找不到Maven命令按钮,只能Maven和Eclipse来回切换,也蛮麻烦的。(发现了,其实只要在pom.xml文件上右键的Run As就能出现Maven命令,或许pom.xml就是maven的标志原因吧)

    出处:http://www.zhaiqianfeng.com    
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    windows下Redis的安装和使用
    ansible plugins简介
    ansible roles例子
    openstack windows2012r2 glance镜像制作
    手动部署tidb(二进制包)集群
    4、ceph-deploy之配置使用对象存储
    3、ceph-deploy之配置使用文件系统
    2、ceph-deploy之配置使用RBD
    1、ceph-deploy之部署ceph集群
    ansible facts
  • 原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4620125.html
Copyright © 2011-2022 走看看