欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java使用Memcached简单教程

程序员文章站 2024-02-18 12:08:22
memcached作为一个高并发内存cached系统被很多大公司使用,最近也一直在用memcached做项目也积累了一些相关经验。 installmemcached的安装...

memcached作为一个高并发内存cached系统被很多大公司使用,最近也一直在用memcached做项目也积累了一些相关经验。

install
memcached的安装很简单,在ubuntu下面一行命令搞定。

复制代码 代码如下:

sudo apt-get install memcached

start
实际使用的时候,memcached需要调整内存大小和端口号等命令,则启动的使用时用以下的command就行。

复制代码 代码如下:

usr/local/bin/memcached -p 11211 -m 64m -d

-p 指定端口号
-m 指定内存大小
-d 作为daemon在后台启动
如果想trouble shotting 则加 -vv

test
test也很简单,安装官网的命令就行

复制代码 代码如下:

telnet localhost 11211

里面就能get和set了。

use in java
由于项目是java的,所以以java为例子来介绍java下memcached的使用。

java下memcached的客户端很多,这里介绍spymemcached

spymemcached的使用很简单,在maven项目下面,我们加入如下依赖。

复制代码 代码如下:

<dependency>
    <groupid>net.spy</groupid>
    <artifactid>spymemcached</artifactid>
    <version>2.9.1</version>
</dependency>

这样我们就能对memcached操作了。

复制代码 代码如下:

public class memcached {

    private static memcachedclient memcached_client;

    static {
        try {
            memcached_client = new memcachedclient(
                    addrutil.getaddresses("localhost1:11211 localhost2:11211"));
        } catch (exception e) {
            system.err.println("cannot init memcached memcached client");
        }
    }

    public static void set(string key, string value,integer expiretime ) throws exception {
        memcached_client.set(key, expiretime, value);
    }

    public static string get(string key) throws exception {
        object value = memcached_client.get(key);
        if (null != value)
            return value.tostring();
        return null;
    }

}

monitor
我们可以通过以下简单的命令得知memcached的运行状况,以此为扩充可以实现简单的memcached检测shell。

复制代码 代码如下:

watch "echo stats | nc 127.0.0.1 11211"

conclusion
memcached实际使用下来简单易用,各个平台上面也有相应的client.

但有时高并发可能会出现timeout的情况,导致缓冲没办法命中的情况,具体原因还需要进一步调查。

memcahed的作者最近用go语言去写了groupcache很值得关注。