您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 安装Memcached及Memcached配置
一、安装Memcached及Memcached配置和状态查询要想使用Memcached做缓存首先需要安装Memcached服务,安装方法如下:1.下载Memcached:现在的最新版本是1.2.6.注意下载正确的版本,windows服务的话下载win32binary。2.解压之后放在硬盘的目录下,如:D:\memcached.然后在运行中输入cmd进入命令行,进入到Memcached.exe所在的目录,例如:D:\memcached,然后输入:Memcached–dinstall,即可完成安装。Memcached还有其他的一些常用的命令如下:-p监听的端口-l连接的IP地址,默认是本机-dstart启动memcached服务-drestart重起memcached服务-dstop|shutdown关闭正在运行的memcached服务-dinstall安装memcached服务-duninstall卸载memcached服务-u以的身份运行(仅在以root运行的时候有效)-m最大内存使用,单位MB。默认64MB-M内存耗尽时返回错误,而不是删除项-c最大同时连接数,默认是1024-f块大小增长因子,默认是1.25-n最小分配空间,key+value+flags默认是48-h显示帮助按照上面的安装步骤安装之后,使用memcached–m200来调整最大内存占用之后会发现没有起作用,总是默认的64MB的内存,在网上搜了一下,原因是注册表中并没有写入信息,可以这样来修改。1.memcached–dshutdown首先关闭memcached服务。2.进入注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcachedServer,在其中有一个ImagePath项,值为d:\memcached\memcached.exe-drunservice,在后面加上-l127.0.0.1-m3000-c2048。3.memcached–dstart启动memcached服务,这样就将memcached的最大内存修改为了3000MB。对Memcached缓存服务的状态查询,可以先telnet连接上服务:telnet127.0.0.111211,然后使用stats命令查看缓存服务的状态,会返回如下的数据:time:1255537291服务器当前的unix时间戳total_items:54从服务器启动以后存储的items总数量connection_structures:19服务器分配的连接构造数version:1.2.6memcache版本limit_maxbytes:67108864分配给memcache的内存大小(字节)cmd_get:1645get命令(获取)总请求次数evictions:0为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)total_connections:19从服务器启动以后曾经打开过的连接数bytes:248723当前服务器存储items占用的字节数threads:1当前线程数get_misses:82总未命中次数pointer_size:32当前操作系统的指针大小(32位系统一般是32bit)bytes_read:490982总读取字节数(请求字节数)uptime:161服务器已经运行的秒数curr_connections:18当前打开着的连接数pid:2816memcache服务器的进程IDbytes_written:16517259总发送字节数(结果字节数)get_hits:1563总命中次数cmd_set:54set命令(保存)总请求次数curr_items:28服务器当前存储的items数量二、在DiscuzNT3.0中配置Memcached服务在DiscuzNT3.0中配置Memcached服务较为简单,找到论坛根目录下的config目录,找到Memcached.config,打开,进行如下配置:?xmlversion=1.0?MemCachedConfigInfoxmlns:xsi=:xsd=(1)/ApplyMemCachedServerList(2)/ServerListPoolNameDiscuzNT_MemCache/PoolNameIntConnections3/IntConnectionsMinConnections3/MinConnectionsMaxConnections5/MaxConnectionsSocketConnectTimeout1000/SocketConnectTimeoutSocketTimeout3000/SocketTimeoutMaintenanceSleep30/MaintenanceSleepFailOvertrue/FailOverNagletrue/Nagle/MemCachedConfigInfo(1)处为true”的时候表示DiscuzNT打开Memcached缓存功能,为false”的时候表示关闭Memcached缓存功能。(2)处填写Memcached服务器的IP地址+端口,例如:127.0.0.1:11211三、二次开发监控Memcached状态DiscuzNT的一个好处就是开源的,并且我们能够再上面很灵活的进行二次开发,这里,我们就以监控Memcached状态为例来做一个二次开发。具体的步骤是:1.下载Memcached的.Net的开发包,下载地址是:。2.在visualstudio2005或者2008中建立一个类库,例如命名为:MyBBS.BBS.Plugin.MemcachedStats,然后在项目点击右键,选择属性,将默认命名空间修改为:Discuz.Web,如图:3.将Memcached的.Net开发包解压,将将Commons.dll,ICSharpCode.SharpZipLib.dll,log4net.dll,Memcached.ClientLibrary.dll等放到bin目录,并且在项目中引用Memcached.ClientLibrary.dll.4.在项目中引用Discuz.Forum.5.在项目中增加类,命名为memcachedstats.cs.记得最好是小写,继承自Discuz.Forum.PageBase。然后在类中overrideshowpage()函数,我们就可以在这里来写代码了,如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data;usingSystem.Collections;usingM=Memcached.ClientLibrary;namespaceDiscuz.Web{publicclassmemcachedstats:Discuz.Forum.PageBase{publicstringMemcachedStatsOutput=string.Empty;protectedoverridevoidShowPage(){base.ShowPage();string[]servers={此处填写Memcachedf服务IP+端口};M.SockIOPoolpool=M.SockIOPool.GetInstance();pool.SetServers(servers);pool.InitConnections=3;pool.MinConnections=3;pool.MaxConnections=5;pool.SocketConnectTimeout=1000;pool.SocketTimeout=3000;pool.MaintenanceSleep=30;pool.Failover=true;pool.Nagle=false;pool.Initialize();this.pagetitle=MemcachedStats;M.MemcachedClientmc=newMemcached.ClientLibrary.MemcachedClient();StringBuildersb=newStringBuilder();Hashtableht=mc.Stats();sb.AppendLine(MemcachedStats:br);sb.AppendLine(_______________________________________br);foreach(DictionaryEntrydeinht){Hashtableinfo=(Hashtable)de.Value;foreach(DictionaryEntryde2ininfo){sb.AppendLine(de2.Key.ToString()+: +de2.Value.ToString()+br);}}MemcachedStatsOutput=sb.ToString();}}}这样我们就将代码完成了,我们将Memcached服务的状态信息保存到了MemcachedStatsOutput这个字段中了,那么我们怎么在页面上显示出来呢?在进行下一步之前,编译输出MyBBS.BBS.Plugin.MemcachedStats.dll然后上传到论坛根目录的bin目录下。6.在论坛根目录下面的templete\default\中新建memcachedstats.htm,写入下面的代码:%template_header%divid=navdivclass=wraps_clearahref={config.forumurl}class=title{config.forumtitle}/a»strongMemcachedStats/strong/div/divdivclass=wrapwith_sides_clearhelpid=wrapdivclass=sidedivclass=sideinner/div/divdivclass=cpmaindivclass=cpcontenth3class=lightlinkMemcachedStats/h3hrclass=solidline/{MemcachedStatsOutput}/div/div/div%template_copyright%%template_footer%这里我们重点注意红色的部分,我们就是在这里来把我们上面的类库里面的MemcachedStatsOutput字段在这里输出的。7.进入论坛后台管理系统,点击“界面风格”——“模板管理”——“default”,这时我们就可以看到出现了memcachedstats这个模板了,勾中前面的复选框,然后选择“按选择的模板文件生成页面”。8.上面的工作完成之后,我们在浏览器中输入:您的论坛地址\memcachedstats.aspx,就可以看到统计的Memcached服务的信息了,如图:四、结束语与参考信息怎么样,还是很简单的吧,当然这里仅仅是做了最基本的开发了,不过相信这些弄清楚了,其它的开发就不是很复杂了,大家也都可以开发出自己更多丰富多彩的功能了。下面列出的是其他的一些参考资料,希望对大家有帮助:Discu
本文标题:安装Memcached及Memcached配置
链接地址:https://www.777doc.com/doc-5924622 .html