时间:2016-02-16 02:02 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【asp.net(C#)遍历memcached缓存对象】,下面是详细的讲解!
asp.net(C#)遍历memcached缓存对象
public Hashtable Stats(ArrayList servers, string command)
{
// get SockIOPool instance
SockIOPool pool=SockIOPool.GetInstance(_poolName);
// return false if unable to get SockIO obj
if(pool==null)
{
//if(log.IsErrorEnabled)
//{
// log.Error(GetLocalizedString("unable to get socket pool"));
//}
return null;
}
// get all servers and iterate over them
if (servers==null)
servers=pool.Servers;
// if no servers, then return early
if(servers==null || servers.Count <=0)
{
//if(log.IsErrorEnabled)
//{
// log.Error(GetLocalizedString("stats no servers"));
//}
return null;
}
// array of stats Hashtables
Hashtable statsMaps=new Hashtable();
for(int i=0; i < servers.Count; i++)
{
SockIO sock=pool.GetConnection((string)servers[i]);
if(sock==null)
{
//if(log.IsErrorEnabled)
//{
// log.Error(GetLocalizedString("unable to connect").Replace("$$Server$$", servers[i].ToString()));
//}
continue;
}
// build command
command=Discuz.Common.Utils.StrIsNullOrEmpty(command) ? "stats\r\n": command + "\r\n";
try
{
sock.Write(UTF8Encoding.UTF8.GetBytes(command));
sock.Flush();
// map to hold key value pairs
Hashtable stats=new Hashtable();
// loop over results
while(true)
{
string line=sock.ReadLine();
//if(log.IsDebugEnabled)
//{
// log.Debug(GetLocalizedString("stats line").Replace("$$Line$$", line));
//}
if(line.StartsWith(STATS))
{
string[] info=line.Split(' ');
string key=info[1];
string val=info[2];
//if(log.IsDebugEnabled)
//{
// log.Debug(GetLocalizedString("stats success").Replace("$$Key$$", key).Replace("$$Value$$", val));
//}
stats[ key ]=val;
}
else if(END==line)
{
// finish when we get end from server
//if(log.IsDebugEnabled)
//{
// log.Debug(GetLocalizedString("stats finished"));
//}
break;
}
statsMaps[ servers[i] ]=stats;
}
}
catch//(IOException e)
{
//if(log.IsErrorEnabled)
//{
// log.Error(GetLocalizedString("stats IOException"), e);
//}
try
{
sock.TrueClose();
}
catch//(IOException)
{
//if(log.IsErrorEnabled)
//{
// log.Error(GetLocalizedString("failed to close some socket").Replace("$$Socket$$", sock.ToString()));
//}
}
sock=null;
}
if(sock !=null)
sock.Close();
}
return statsMaps;
}
关于asp.net(C#)遍历memcached缓存对象的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
