转jlchen java获取memcached所有key

public class Telnet {
     public static void main(String args[]) {
         String[] keys = allkeys( "localhost" , 11211 ).split( "\n" );
         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( "\n" );
             }
             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( "\n" )){
                     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( "\n" );
                         }
                     }
                 }
             }
             
             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( "\n" );
             }
             os.close();
             is.close();
             socket.close();
         } catch (Exception e) {
             System.out.println( "Error" + e);
         }
         return r.toString();
     }
     
}

转载于:https://www.cnblogs.com/xsht/p/5407486.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值