zoukankan      html  css  js  c++  java
  • 转jlchen java获取memcached所有key

    public class Telnet {
        public static void main(String args[]) {
            String[] keys = allkeys("localhost", 11211).split(" ");
            Arrays.sort(keys);
            for(String s : keys){
                System.out.println(s);
            }
            System.out.println(telnet("localhost", 11211, "stats"));
        }
        public static String allkeys(String host, int port){
            StringBuffer r = new StringBuffer();
            try {
                Socket socket = new Socket(host, port);
                PrintWriter os = new PrintWriter(socket.getOutputStream());
                BufferedReader is = new BufferedReader(new InputStreamReader( socket.getInputStream()));
                os.println("stats items");
                os.flush();
                String l ;
                while (!(l = is.readLine()).equals("END")) {
                    r.append(l).append(" ");
                }
                String rr = r.toString();
                Set<String> ids = new HashSet<String>();
                if(rr.length() > 0){
                    r = new StringBuffer();//items
                    rr.replace("STAT items", "");
                    for(String s : rr.split(" ")){
                        ids.add(s.split(":")[1]);
                    }
                    if (ids.size() > 0){
                        r = new StringBuffer();//
                        for(String s : ids){
                            os.println("stats cachedump "+ s +" 0");
                            os.flush();
                            while (!(l = is.readLine()).equals("END")) {
                                r.append(l.split(" ")[1]).append(" ");
                            }
                        }
                    }
                }
                 
                os.close();
                is.close();
                socket.close();
            } catch (Exception e) {
                System.out.println("Error" + e);
            }
            return r.toString();
        }
        public static String telnet(String host, int port, String cmd){
            StringBuffer r = new StringBuffer();
            try {
                Socket socket = new Socket(host, port);
                PrintWriter os = new PrintWriter(socket.getOutputStream());
                BufferedReader is = new BufferedReader(new InputStreamReader( socket.getInputStream()));
                os.println(cmd);
                os.flush();
                String l ;
                while (!(l = is.readLine()).equals("END")) {
                    r.append(l).append(" ");
                }
                os.close();
                is.close();
                socket.close();
            } catch (Exception e) {
                System.out.println("Error" + e);
            }
            return r.toString();
        }
         
    }
  • 相关阅读:
    ISP基础(01):ISP模块列表
    Linux 开发(02):打印特殊含义转义符
    note template
    apply、call、bind的区别
    Fiddle 抓包工具
    post和get的使用场景和区别
    闭包
    原型链
    node.js
    CSS垂直居中
  • 原文地址:https://www.cnblogs.com/xsht/p/5407486.html
Copyright © 2011-2022 走看看