/// <summary>
/// 遍历出所有元素
/// </summary>
/// <param name="tagName">customer_,device_ 等</param>
/// <returns>Hashtable 数据对象,根据tagName</returns>
public Hashtable GetStats(string tagName)
{
ArrayList arrList=new ArrayList();
for (int i = 0; i < serverlist.Length; i++)
{
arrList.Add(serverlist[i]);
}
Hashtable tmpDataHashTable = new Hashtable();
Hashtable resultHashtable = new Hashtable();
Hashtable allHashtable = mc.Stats(arrList, "items");
foreach (string key in allHashtable.Keys)
{
Hashtable dataHashTable = (Hashtable)allHashtable[key];
foreach (string tmpKey in dataHashTable.Keys)
{
string[] splitKey = tmpKey.Split(':');
string tmpValue = (string)dataHashTable[tmpKey];
if (splitKey[2] == "number")
{
tmpDataHashTable.Add(splitKey[1], tmpValue);
}
}
}
//如果在存放数据是没有使用自己的标记数据时,这个可以不需要,但建议做标记
//因为获取出来的也许不是你的数据
foreach (string allKey in tmpDataHashTable.Keys)
{
//key memCache结果集标记key,tmpDataHashTable[key]条数
Hashtable hashtable = mc.Stats(arrList, "cachedump " + allKey + " " + tmpDataHashTable[allKey]);
foreach (string tmpKey in hashtable.Keys)
{
Hashtable result = (Hashtable)hashtable[tmpKey];
foreach (string resultKey in result.Keys)
{
if (resultKey.IndexOf(tagName) != -1)
{
resultHashtable.Add(resultKey, result[resultKey]);
}
}
}
}
return resultHashtable;
}