由于使用spymemcached客户端没有像redis那样提供获取所有key的方法。所以我们只能曲线救国,从cmd开始:
public static void main(String args[]) {
String[] keys = allkeys("127.0.0.1", 11211).split("SPLIT");
Arrays.sort(keys);
for (String s : keys) {
System.out.println(s);
}
}
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("SPLIT");
}
String rr = r.toString();
Set<String> ids = new HashSet<>();
if (rr.length() > 0) {
r = new StringBuffer();// items
rr.replaceAll("STAT items", "");
for (String s : rr.split("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("SPLIT");
}
}
}
}
os.close();
is.close();
socket.close();
} catch (Exception e) {
System.out.println("Error" + e);
}
return r.toString();
}
参照阿里的教程文档:https://www.aliyun.com/jiaocheng/538774.html