致支持和关注本Blog的朋友:
感谢你访问PaulLeder--程序部落
在这里包括一些与计算机有关知识的讨论和学习。
我希望能以这个网站为平台,和大家一起交流计算机程序设计的经历和心得。
衷心祝福大家在学业和事业上不断进步,体会成功、自信和快乐。

 

预览模式: 普通 | 列表

【虎.无名】以前只在Ubuntu上测试过,安装使用memcached都很方便。我测试的java的API接口,只是简单定义多个host和port,然后直接轮询,似乎还没有提供对Consistent Hashing算法的支持。下面着篇《memcached全面剖析》译文,介绍得比较直白易懂,值得一看
http://tech.idv2.com/2008/08/17/memcached-pdf/ memcached全面剖析–PDF总结篇 作者:长野雅广(Masahiro Nagano),译:charlee
第1章:http://tech.idv2.com/2008/07/10/memcached-001/ 1.memcached完全剖析–1. memcached的基础
第2章:http://tech.idv2.com/2008/07/11/memcached-002/ 2.理解memcached的内存存储
第3章:http://tech.idv2.com/2008/07/16/memcached-003/ 3.memcached的删除机制和发展方向
第4章:http://tech.idv2.com/2008/07/24/memcached-004/ 4. memcached的分布式算法 (memcached的分布式是由客户端函数库实现,余数散列的缺点、更高效率的Consistent Hashing算法
第5章:http://tech.idv2.com/2008/07/31/memcached-005/ 5. memcached的应用和兼容程序 (采用daemontools监视memcached进程并自动启动的方法,memcached的性能,兼容应用程序:持久化保存)
《memcached全面剖析》(pdf下载):http://tech.idv2.com/wp-content/uploads/2008/08/memcached.zip
原文链接:http://gihyo.jp/dev/feature/01/memcached/0001 作者:长野雅广(Masahiro Nagano) 2008/7/2 
memcached的特征 :协议简单(文本协议,详见http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt),基于libevent的事件处理 ,内置内存存储方式 ,memcached不互相通信的分布式
http://www.cnblogs.com/zjneter/archive/2007/07/19/822780.html 分布式缓存系统Memcached简介与实践 (ASP.NET)
一 Memcached服务器端的安装 (此处将其作为系统服务安装)
下载文件:(Dec 23, 2006) http://jehiah.cz/projects/memcached-win32/files/memcached-1.2.1-win32.zip
1 解压缩文件到c:\memcached
2 命令行输入 'c:\memcached\memcached.exe -d install'
3 命令行输入 'c:\memcached\memcached.exe -d start' ,该命令启动 Memcached ,默认监听端口为 11211
通过 memcached.exe -h 可以查看其帮助
二   .NET memcached client library
下载文件:https://sourceforge.net/projects/memcacheddotnet/
里面有.net1.1 和 .net2.0的两种版本 还有一个不错的例子。
http://blog.chinaunix.net/u/26905/showart_255927.html 关于memcached的浅见 (slab/chunk问题)
为了减少管理内存碎片的麻烦,当你需要通过memcached往缓存里面保存一个数据时, memcached给这个数据提供一个固定大小的内存块(chunk),比如数据的长度是100bytes,那么memcached提供一个大小为128b的chunk来存储该数据,chunk块的大小可以为64B,128B,256B...1024KB.使用何种大小的chunk块是由memcache根据数据的长度来决定的。 当你第一次往memcached存储数据时, memcached会去申请1MB的内存, 把该块内存称为一个slab, 也称为一个page, 如果可以存储这个数据的最佳的chunk大小为128B,那么memcached会把刚申请的slab以128B为单位进行分割成8192块. 当这页slab的所有chunk都被用完时,并且继续有数据需要存储在128B的chunk里面时,如果已经申请的内存小于最大可申请内存10MB时,memcached继续去申请1M内存,继续以128B为单位进行分割再进行存储;如果已经无法继续申请内存,那么mamcached会先根据LRU算法把队列里面最久没有被使用到的chunk进行释放后,再将该chunk用于存储.
为了避免使用memcached时出现异常, 使用memcached的项目需要注意:
1. 不能往memcached存储一个大于1MB的数据.
2. 往memcached存储的所有数据,如果数据的大小分布于各种chunk大小区间,从64B到1MB都有,可能会造成内存的极大浪费以及memcached的异常.
举个例子: memcached最大可申请内存为2M, 你第一次存储一个10B的数据,那么memcached会申请1MB的内存,以64B进行分割然后存储该数据, 第二次存储一个90B的数据,那么memcached会继续申请1M的内存,以128B进行分割然后存储该数据, 第三次如果你想存储一个150B的数据, 如果可以继续申请内存, memcached会申请1M内存以256B的大小进行分割, 但是由于最大可申请仅仅为2MB,所以会导致该数据无法存储.
http://www.example.net.cn/archives/2006/01/eoamemcachedoea.html 使用memcached进行内存缓存 (旧文重发 2005.8.9)

http://www.javaeye.com/topic/154767 关于memcached client的选择
更多相关推荐 Memcached(http://www.danga.com/memcached/)是被广泛使用的分布式缓存技术,javaeye也使用memcached做对象缓存。不同的语言有不同的memcached客户端程序,对于java客户端来说,memcached网站给了两个选择:
1. A Java API is maintained by Greg Whalin from Meetup.com. You can find that library here: * http://www.whalin.com/memcached/ -- Java API for memcached
2. An improved Java API maintained by Dustin Sallings is also available. Aggressively optimised, ability to run async, supports binary protocol, etc. See site for details: * http://bleu.west.spy.net/~dustin/projects/memcached/ -- Improved Java API for memcached
从字面上我们很容易看出第二个(net.spy.memcached)应该性能更好,但是网上包括javaeye上面关于java client的讨论和使用都是基于第一个(com.danga.memcached )的。为什么性能好的反而讨论的比较少呢?我猜测的原因在于,第一个Client出来的比较早,网上资料也比较多。有些人就没有到memched网站看client api直接使用google之类的搜索引擎搜索到第一个client就是用。
目前没有这两个client的对比数据,有没有做了,拿出来共享一下?
评论:
lizhilin 第二种可以使用异步的方式 速度上 简单的试了一下 好像确实要快一点
freeway2000 : http://www.whalin.com/memcached/现在好像出了新版本了,性能不比第二个差。我在使用net.spy.memcached有时候会出现异常。感觉不太稳定。【虎.无名,后者采用了nio技术,但我感觉nio对于客户端而言,带来的性能提高并不明显,代码复杂度和稳定性反而提高了很多。】
imcaptor :两种我都用了,效率差不多,0-3毫秒
http://www.javaeye.com/topic/208981 分布式缓存系统Memcached学习心得
 

  • memcached-1.2.1-win32-0001.rar (87.8 KB) 描述: memcached-1.2.1-win32 下载次数: 264
    java_memcached-release_2.0.1.jar (56.4 KB) 描述: memcached client jar 下载次数: 220
    回复:
    nowonder:之前调研memcached最大的问题是它是一个单点,是一种集中式的分布式,组成它的n台机器里只要有一个down了,整个就挂了...
    robbin 1、并不会整个挂掉,只会访问某些cache内容无法命中 2、就算全部挂掉,Cache就是减少对数据库访问的,所以无非就是对数据库压力大一些而已,能有什么影响? 3、如果你希望Cache持久化,或者带有故障切换功能,可以用memcachedb。【虎.无名:常见操作,先从缓存取,没有则从数据库取,同时更新缓存。因而不会出现nowonder所说的问题。再说,可以部署多个memcached,就更不是单点了。】
    edwardpro : memcached 要求set的对象必须是可序列化对象,jboss cache等java obect cache是没有这个说法的,这是本质的不同的,但是他可以在网络上用,所以必须序列化也可理解,lz的例子比较简单还没有说明这点.
    http://www.javaeye.com/topic/225692 潜入memcached server
    outrace 对于不能容忍丢失的情况,比如session用memcache来保存,那么建议可以使用一下解决方
    memcachedbhttp://www.memcachedb.com 使用memcache协议,bdb持久化到硬盘中
    Tokyo Tyrant 参看:http://blog.s135.com/read.php/362.htm
    对于可以容忍丢失的情况,那么即使memcached丢失了一些数据,应当问题也不大了

分类:.Net | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 23
Myspace和Facebook都是很优秀的社交类网站,它们拥有的用户和fans之多,大家都很清楚。
Myspace是一个基于.NET平台的,而Facebook更多是基于LAMP的。
我们来看看MySpace配合.NET+Windows Server 2003+Sql Server 2000/2005+IIS怎么创造传奇的

文章正文如下:

查看更多...

分类:.Net | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 59
将VS的工具-选项-项目和解决方案-生成并运行,设置“MSBuild 项目生成输出详细信息”,选择“详细”。再次生成Web Deployment Projects项目,“输出”框内的信息就变得非常丰富了;这样就可以查看哪里出错了;

然后在“输出”里查看具体错误原因。
一般造成此问题是因为类名相同造成,合并的DLL类是不会加路径的,所以只要整个项目里面有相同类名都会造成此错误。
找到问题出处后修改aspx页面上的类和继承的类的类名就可以解决问题。
分类:.Net | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 58

不爽的VS2010总有解决办法

开始用VS2010还是挺好的,最不爽的莫过于它的项目右键菜单,正如http://www.cnblogs.com/KevinYang/archive/2010/06/02/1749671.html文章提到的。
后来我在网上找了一些插件(VS2010的插件是要比VS2008丰富多了)来解决了种种问题。我推荐的VS2010插件如下:
AxTools.VS10X.CodeMap ---可以在代码编辑区域右侧出现代码大纲,也很容易控制代码折叠,还有历史记录功能等等。
codecompareinstall         ---代码比较工具
Microsoft.VisualStudio.RegularExpression ----正则表达式帮助工具,之要你new RegExp后就会自动弹出

查看更多...

分类:.Net | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 170

检测.NET PerformanceCounterCategory数据

引用内容 引用内容
public static void GetCategoryNameList()
        {
            StringBuilder sb = new StringBuilder();
            sb.AppendLine("");
            PerformanceCounterCategory[] myCat2;

查看更多...

分类:.Net | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 86
log4net has a known issue of referencing a System.Web component which is not part of the .NET Framework 4 Client Profile and the VS2010 by default sets project target to be the lightweighted Client Profile. The solution is to change the target to .NET Framework 4:

Right click project -> properties -> Application. Change:

引用内容 引用内容
.NET Framework 4 Client Profile

查看更多...

分类:.Net | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 100

通过Enum.Parse转换字符串成对应的枚举类型

引用内容 引用内容
using System;

public class ParseTest {
    [FlagsAttribute]
    enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 };

查看更多...

分类:.Net | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 125