首页|五四陈后院|百丁屋论坛 CNFLEX组织|md5破解|关于|Profile
  • 802.1x代码 | bbsdown代码 | php手册 | 技术资料翻译

    内部培训–memcached协议详解[原创][总结]

    字号:T|T

    [ 文章作者:陈臻 本文版本:v1.0 最后修改:2009.5.12 转载请注明原文链接:http://www.54chen.com/c/584 ]

    本次讲座讲师是校内网高手张洁同学,主题是“memcached协议详解及java client分析比较”,java client分析比较线条化,只有在现场才能明白,此处只回顾memcached协议详解,为易于理解,标题段落有调整。

    一.连接

    安装好memcached,直接通过telnet localhost 11211连接。11211是memcache默认的端口。

    二.协议

    2.1store (存储)

    (可用命令)set/add/replace/prepend/append

    <command name> <key> <flags> <exptime> <bytes> [noreply]\r\n

    exptime 只能精确到秒

    例如:

    set name 0 0 5<回车>

    zhangjie<回车>

    STORED

    区别:set可能覆盖,add不能覆盖,prepend是续在前面,append是续在后面。

    另:[noreply] 是新版中增加的标志,可以让服务器端不用返回。

    2.2 cas(compare and set)

    最新版的命令。目的保证执行的原子性。

    例如:

    cas some 0 0 10 2

    意思是:检查some的值的版本是不是2,是2才把10存进去,

    2.3 get/gets

    get <key>*

    get key1\r\n

    get key1 key2 key3\r\n

    gets与get相比,返回结果会多一个版本号:

    gets some

    VALUE some 0 10 2

    2008-03-20

    END

    2.4 delete(没得说的)

    2.5 incr/decr(自增和自减)

    2.6 stats(运行状态)

    STAT curr_items 1

    STAT total_items 7

    STAT bytes 58

    STAT curr_connections 5

    STAT total_connections 6

    STAT connection_structures 6

    STAT cmd_get 12

    STAT cmd_set 11

    STAT get_hits 8

    STAT get_misses 4

    三.两个java client

    spymemcached

      http://code.google.com/p/spymemcached

    Java memcached client

      http://www.whalin.com/memcached

    关于环状的一致性hash很有意思,有时间研究研究。


    原创文章如转载,请注明:转载自五四陈科学院[http://www.54chen.com]
    本文链接: http://www.54chen.com/_linux_/%e5%86%85%e9%83%a8%e5%9f%b9%e8%ae%ad-memcached%e5%8d%8f%e8%ae%ae%e8%af%a6%e8%a7%a3%e5%8e%9f%e5%88%9b%e6%80%bb%e7%bb%93.html

    相关阅读:

    分类: java, linux   Tags: , ,

    [五四陈科学院出品]

    网友评论:

      2条评论

      • At 2009.05.12 19:09, agentzh said:

        除了协议之外,memcached 最容易被搞的是其“局部 LRU”和基于 slabs 的存储分配策略。我前不久刚在我们的 Firefox 集群中被 memcached 的不良 slabs 分配策略给搞了,哈哈!通过 -f 和 -n 选项校正,好了许多,呵呵。

        • At 2009.05.12 19:14, cc0cc said:

          兄弟真是神速,上回你说那个用memcached做自旋锁有空写个日志学习下。

        (Required)
        (Required, will not be published)

      推广信息