• Memcache入门


    说来惭愧,第一次听说Memcache是在大约在6个月前。作为一个搞J2EE开发的,工作一年多了,都没听说过Memcache实在是惭愧。

    当时是换了新工作,第一个任务是开发一个报表系统供公司内部使用。为了使系统能7*24小时提供服务,老大说搞两台服务器吧,然后弄个Memcache。后来换了个方式,一台服务器作为“主”服务器,正常情况下用户均访问这台机器,当访问不了的时候自动跳转到另一台机子,实在服务器上做了一次跳转。然后就没有去看Memcache。下午有空就学习了一下,以下是自己的学习纪录。

    Memcache是一种高性能分布式内存缓存服务器。

    memcached is a high-performance, distributed memory object caching system, generic in nature, but originally intended for use in speeding up dynamic web applications by alleviating database load.

    安装Libevent:

    Memcache使用Libevent操作网络IO,所以先安装Libevent http://libevent.org/

    $wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz

    $tar -zxvf libevent-2.0.21-stable.tar.gz

    $cd libevent-2.0.21-stable

    $autoconf

    $./configure --prefix=/usr/local

    $make

    $sudo make install

    安装Memcache:

    $wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz

    $tar -zxvf memcached-1.4.15

    $cd memcached-1.4.15

    $autoconf

    $./configure --prefix=/usr/local

    $make

    $sudo make install

    启动Memcache:

    启动Memcache守护进程,使用64M内存,11211端口

    $memcached -d -m 64 127.0.0.1 -p 11211

    测试:

    通过telnet server port使用刚才启动的服务

    上面使用了setgetquit命令,下面是一些常用命令

    Command

    Description

    Example

    get

    Reads a value

    get mykey

    set

    Set a key unconditionally

    set mykey 0 60 5

    add

    Add a new key

    add newkey 0 60 5

    replace

    Overwrite existing key

    replace key 0 60 5

    append

    Append data to existing key

    append key 0 60 15

    prepend

    Prepend data to existing key

    prepend key 0 60 15

    incr

    Increments numerical key value by given number

    incr mykey 2

    decr

    Decrements numerical key value by given number

    decr mykey 5

    delete

    Deletes an existing key

    delete mykey

    flush_all

    Invalidate specific items immediately

    flush_all

    Invalidate all items in n seconds

    flush_all 900

    stats

    Prints general statistics

    stats

    Prints memory statistics

    stats slabs

    Prints memory statistics

    stats malloc

    Print higher level allocation statistics

    stats items

     

    stats detail

     

    stats sizes

    Resets statistics

    stats reset

    version

    Prints server version.

    version

    verbosity

    Increases log level

    verbosity

    quit

    Terminate telnet session

    quit

     在Java中使用:

    在Java中使用Memcache需要一个客户端,本文使用的是xMemcache。

    "XMemcached是一个新java memcached client。也许你还不知道memcached是什么?可以先看看这里。简单来说,Memcached 是一个高性能的分布式内存对象的key-value缓存系统,用于动态Web应用以减轻数据库负载,现在也有很多人将它作为内存式数据库在使用,memcached通过它的自定义协议与客户端交互,而XMemcached就是它的一个java客户端实现。"

    简单的测试

    memClient.set("test", 0, "hello world");

    memClient.set("test1", 30, "hello world 111");

    区别在与第二个参数,他的含义是

    第一个是存储的 key 名称,第二个是 expire 时间(单位秒) ,超过这个时间 ,memcached 将这个数据替换出去, 0 表示永久存储(默认是一个月) ,第三个参数就是实际存储的数据,可以是任意的 java 可序列化类型  

     

    在过30秒之后再去取test1将取到null

    更多xMemcache内容见https://code.google.com/p/xmemcached/wiki/User_Guide_zh

    https://code.google.com/p/xmemcached/

    http://xmemcached.googlecode.com/svn/trunk/apidocs/net/rubyeye/xmemcached/MemcachedClient.html

     

  • 相关阅读:
    vc++ 最小化到托盘的详细实现
    WS_CLIPCHILDREN和WS_CLIPSIBLINGS的理解(转载)
    windows 进程间通讯方法
    C++中各种数据量类型转换
    WTL 自绘 进度条Progressbar
    C++ 读取XML文件(tinyXML库的应用)
    WTL 自定义 Button类-自绘
    设计模式课程 设计模式精讲 27-3 状态模式源码解析
    设计模式课程 设计模式精讲 27-2 状态模式coding
    设计模式课程 设计模式精讲 26-3 访问者模式源码解析
  • 原文地址:https://www.cnblogs.com/hzmark/p/memcache.html
Copyright © 2020-2023  润新知