zyc8211 发表于 2015-9-2 07:22:22

Memcached 使用与简单监测

Introduce
  Memcached作为一个高并发内存Cached系统被很多大公司使用,最近也一直在用Memcached做项目也积累了一些相关经验。
  本篇博文主要记录Memcached的一些基本使用和简单的Monitor

Install
  Memcached的安装很简单,在Ubuntu下面一行命令搞定。






1



sudo apt-get install memcached






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






1



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







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

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






1



telnet localhost 11211





  里面就能Get和Set了。

Use in Java
  由于项目是java的,所以以java为例子来介绍Java下Memcached的使用。
  Java下Memcached的客户端很多,这里介绍spymemcached
  spymemcached的使用很简单,在maven项目下面,我们加入如下依赖。






1
2
3
4
5



<dependency>
<groupId>net.spy</groupId>
<artifactId>spymemcached</artifactId>
<version>2.9.1</version>
</dependency>





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






1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26



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。






1



watch "echo stats | nc 127.0.0.1 11211"






Conclusion
  Memcached实际使用下来简单易用,各个平台上面也有相应的Client.
  但有时高并发可能会出现Timeout的情况,导致缓冲没办法命中的情况,具体原因还需要进一步调查。
  Memcahed的作者最近用Go语言去写了groupcache很值得关注。
页: [1]
查看完整版本: Memcached 使用与简单监测