上次我们介绍了:使用LLServer实现对leveldb的访问封装详解,本文我们介绍一下使用LLServer实现对leveldb的访问封装的C#客户端源码,希望能够对您有所帮助。

1.这里将Discuz!NT使用的memcached 客户端(已修改过部分代码),大家可以使用它(支持链接池)来直接访问LLServer,相应的示例在压缩包的MemcachedApp\MemcachedApp\sample\sample_1.aspx中。下载地址:http://files.cnblogs.com/daizhj/MemcachedApp_llserver.rar

2.当然也可以使用c#的httpwebrequest来直接访问,比如(代码源自discuz!nt):

    namespaceDiscuz.Common { ///<summary>///httpPOST请求url ///</summary>///<paramnameparamname="url">请求的url链接</param>///<paramnameparamname="method">方法名称,如"POST","GET"</param>///<paramnameparamname="postData">方法名称为"POST"时,所有提交的数据</param>///<returns></returns>publicstaticstringGetHttpWebResponse(stringurl,stringmethod,stringpostData) { HttpWebRequestrequest=(HttpWebRequest)HttpWebRequest.Create(url); request.Method=method; request.ContentType="application/x-www-form-urlencoded"; request.ContentLength=string.IsNullOrEmpty(postData)?0:postData.Length; //request.UserAgent="Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.2;.NETCLR1.0.3705;)"; request.Timeout=60000; HttpWebResponseresponse=null; try { if(!string.IsNullOrEmpty(postData)) { StreamWriterswRequestWriter=newStreamWriter(request.GetRequestStream()); swRequestWriter.Write(postData); if(swRequestWriter!=null) swRequestWriter.Close(); } response=(HttpWebResponse)request.GetResponse(); using(StreamReaderreader=newStreamReader(response.GetResponseStream(),Encoding.UTF8)) { returnreader.ReadToEnd(); } } catch { returnnull; } finally { if(response!=null) response.Close(); } } //这里发送请求并返回数据 stringresult=GetHttpWebResponse("http://127.0.0.1:11211/?opt=get&charset=utf-8&key=username","GET",null);

当然你可也以用其它语言的memcached客户端来访问LLServer,不过有一点要说明的是,目前llserver只存储序列化的字符串对象,如果你的数据为泛型或数组等类型,请先序列化之后再进行存储。  

还有就是在C#里可以对数据进行二进制序列化,这里必须将序列化后的对象进行base64位编码之后再存储,否则会报异常,切记。

以上就是使用LLServer实现对leveldb的访问封装的C#客户端源码程序,本文就介绍到这里了,希望本次的介绍能够对您有所收获!

【编辑推荐】

    SQL Server数据库服务器负载均衡集群的实现方法MySQL性能优化之使用Limit关键字来避免全表扫描初学Java调用存储过程返回一行或多行结果集的实例Oracle 11.2.0.1 for RHEL5-6 x86和x64静默安装详解SQL Server环境语言变换导致存储过程执行不正常的解决