private static MemCachedClient mcc = new MemCachedClient();
static {
String[] servers = { "127.0.0.1:11211" };
Integer[] weights = { 3 };
SockIOPool pool = SockIOPool.getInstance();
pool.setServers(servers);
pool.setWeights(weights);
pool.setInitConn(5);
pool.setMinConn(5);
pool.setMaxConn(255);
pool.setMaxIdle(1000 * 60 * 60 * 6);
pool.setMaintSleep(30);
pool.setSocketTO(3000);
pool.setSocketConnectTO(0);
pool.initialize();
}
/**
* 获取某台memcached的所有key* @param memcachedNo
* @return
*/
public static List<String> getAllKeys() {
List<String> list = new ArrayList<String>();
Map<String, Map<String, String>> items = mcc.statsItems();
for (Iterator<String> itemIt = items.keySet().iterator(); itemIt.hasNext();) {
String itemKey = itemIt.next();
// System.out.println("----------------------------");
// System.out.println("items:" + itemKey);//items:127.0.0.1:11211
// System.out.println("============================");
Map<String, String> maps = items.get(itemKey);
for (Iterator<String> mapsIt = maps.keySet().iterator(); mapsIt.hasNext();) {
String mapsKey = mapsIt.next();
String mapsValue = maps.get(mapsKey);
// System.out.println("----------------------------");
// System.out.println("maps:" + mapsKey);//items:15:number
// System.out.println("maps:" + mapsValue);//50
// System.out.println("============================");
if (mapsKey.endsWith("number")) {//memcached key 类型 item_str:integer:number_str
String[] arr = mapsKey.split(":");
int slabNumber = Integer.valueOf(arr[1].trim());
int limit = Integer.valueOf(mapsValue.trim());
Map<String, Map<String, String>> dumpMaps = mcc.statsCacheDump(slabNumber, limit);
for (Iterator<String> dumpIt = dumpMaps.keySet().iterator(); dumpIt.hasNext();) {
String dumpKey = dumpIt.next();
// System.out.println("----------------------------");
// System.out.println("dumpMaps:" + dumpKey);//127.0.0.1:11211
// System.out.println("============================");
Map<String, String> allMap = dumpMaps.get(dumpKey);
for (Iterator<String> allIt = allMap.keySet().iterator(); allIt.hasNext();) {
String allKey = allIt.next();
list.add(allKey.trim());
}
}
}
}
}
return list;
}