zoukankan      html  css  js  c++  java
  • 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很值得关注。

  • 相关阅读:
    mysql 行转列 列转行
    JAVA中使用JSch库实现SSH功能
    sqlmap详解
    Max+Decode的妙用.(紀錄分組).
    apache mina sshd ,纯java的ssh工具包
    Nginx 日志分析及性能排查
    PHP在Apache中两种工作方式的区别(CGI模式、Apache 模块DLL)
    如何将本地做好的网站挂到服务器上
    Drupal
    程序员的十种级别,
  • 原文地址:https://www.cnblogs.com/nateriver520/p/3378061.html
Copyright © 2011-2022 走看看