仓酷云

标题: 发布一篇基于java nio的memcached客户端 - xmemcached [打印本页]

作者: 再现理想    时间: 2015-1-18 11:09
标题: 发布一篇基于java nio的memcached客户端 - xmemcached
因为能用到多少功能就用多少,不能用就不用!总的来说:要简单要性能好,可以不用框架。你说java复杂,就是因为你把java(j2ee)与这些框架混在了一起。
1、xmemcached是甚么?
xmemcached是基于javanio完成的memcached客户端API。
实践上是基于我完成的一个复杂nio框架http://code.google.com/p/yanf4j/的基本上完成的(今朝是基于yanf4j0.52),中心代码不凌驾1000行,序列化机制间接调用spymemcached的Transcoder。
功能方面,在读写复杂范例上比之spymemcached仍是有差异,在读写对照年夜的对象(如汇合)无效率上风。
以后0.50-beta版本,仅撑持单个memcached服务器,今后思索扩大。今朝已撑持get、set、add、replace、delete、incr、decr、version这几个协定。API为堵塞模子,而非spymemcached的异步形式,异步模子在批处置的时分有上风,可是堵塞形式在编程难度和利用上会简单良多。
2、为何叫xmemcached?
由于我在厦门(XM)混饭......
3、xmemcached的下载和利用
项目主页:http://code.google.com/p/xmemcached/
下载地点:http://code.google.com/p/xmemcached/downloads/list
下载的紧缩包中包含了依附库、源码和打包后的jar,放到项目标lib目次下便可利用。
示例参考:
package net.rubyeye.xmemcached.test;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.io.Serializable;

import net.rubyeye.xmemcached.XMemcachedClient;

class Name implements Serializable {
    String firstName;
    String lastName;
    int age;
    int money;

    public Name(String firstName, String lastName, int age, int money) {
        super();
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
        this.money = money;
    }

    public String toString() {
        return "[" + firstName + " " + lastName + ",age=" + age + ",money="
                + money + "]";
    }

}

public class Example {
    public static void main(String[] args) {
        try {
            String ip = "192.168.222.100";

            int port = 11211;
            XMemcachedClient client = new XMemcachedClient(ip, port);
            // 存储操纵
            if (!client.set("hello", 0, "dennis")) {
                System.err.println("set error");
            }
            client.add("hello", 0, "dennis");
            client.replace("hello", 0, "dennis");

            // get操纵
            String name = (String) client.get("hello");
            System.out.println(name);

            // 批量猎取
            List<String> keys = new ArrayList<String>();
            keys.add("hello");
            keys.add("test");
            Map<String, Object> map = client.get(keys);
            System.out.println("map size:"+map.size());

            // delete操纵
            if (!client.delete("hello", 1000)) {
                System.err.println("delete error");
            }

            // incr,decr
            client.incr("a", 4);
            client.decr("a", 4);

            // version
            String version = client.version();
            System.out.println(version);
            // 增编削查自界说对象
            Name dennis = new Name("dennis", "zhuang", 26, -1);
            System.out.println("dennis:" + dennis);
            client.set("dennis", 0, dennis);

            Name cachedPerson = (Name) client.get("dennis");
            System.out.println("cachedPerson:" + cachedPerson);
            cachedPerson.money = -10000;

            client.replace("dennis", 0, cachedPerson);
            Name cachedPerson2 = (Name) client.get("dennis");
            System.out.println("cachedPerson2:" + cachedPerson2);

            // delete
            client.delete("dennis");
            System.out.println("after delete:" + client.get("dennis"));
            client.shutdown();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}
4、xmemcached的企图?
1)、增加多服务器和集群撑持
2)、功能优化、重构
3)、增加cas原子操纵和更多协定撑持

先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。
作者: 爱飞    时间: 2015-1-20 15:19
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 若天明    时间: 2015-1-26 10:11
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
作者: 兰色精灵    时间: 2015-2-8 06:23
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 海妖    时间: 2015-2-24 12:44
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
作者: 小女巫    时间: 2015-3-7 12:15
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者: admin    时间: 2015-3-21 18:13
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2