MemCached说明Word文档下载推荐.docx
- 文档编号:17664373
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:39
- 大小:41.35KB
MemCached说明Word文档下载推荐.docx
《MemCached说明Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《MemCached说明Word文档下载推荐.docx(39页珍藏版)》请在冰豆网上搜索。
-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.6
memcache版本
limit_maxbytes:
67108864
分配给memcache的内存大小(字节)
cmd_get:
1645
get命令(获取)总请求次数
evictions:
0
为获取空闲内存而删除的items数(分配给memcache的空间用满后需
要删除旧的items来得到空间分配给新的items)
total_connections:
从服务器启动以后曾经打开过的连接数
bytes:
248723
当前服务器存储items占用的字节数
threads:
1
当前线程数
get_misses:
82
总未命中次数
pointer_size:
32
当前操作系统的指针大小(32位系统一般是32bit)
bytes_read:
490982
总读取字节数(请求字节数)
uptime:
161
服务器已经运行的秒数
curr_connections:
18
当前打开着的连接数
pid:
2816
memcache服务器的进程ID
bytes_written:
16517259
总发送字节数(结果字节数)
get_hits:
1563
总命中次数
cmd_set:
set命令(保存)总请求次数
curr_items:
28
服务器当前存储的items数量
二、在DiscuzNT3.0中配置Memcached服务
在DiscuzNT3.0中配置Memcached服务较为简单,找到论坛根目录下的config目录,找到Memcached.config,打开,进行如下配置:
<
?
xmlversion="
1.0"
>
MemCachedConfigInfoxmlns:
xsi="
http:
//www.w3.org/2001/XMLSchema-instance"
xmlns:
xsd="
//www.w3.org/2001/XMLSchema"
<
ApplyMemCached>
(1)<
/ApplyMemCached>
ServerList>
(2)<
/ServerList>
PoolName>
DiscuzNT_MemCache<
/PoolName>
IntConnections>
3<
/IntConnections>
MinConnections>
/MinConnections>
MaxConnections>
5<
/MaxConnections>
SocketConnectTimeout>
1000<
/SocketConnectTimeout>
SocketTimeout>
3000<
/SocketTimeout>
MaintenanceSleep>
30<
/MaintenanceSleep>
FailOver>
true<
/FailOver>
Nagle>
/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>
"
);
_______________________________________<
foreach(DictionaryEntrydeinht)
Hashtableinfo=(Hashtable)de.Value;
foreach(DictionaryEntryde2ininfo)
sb.AppendLine(de2.Key.ToString()+"
:
&
nbsp;
+de2.Value.ToString()+"
}
MemcachedStatsOutput=sb.ToString();
}
这样我们就将代码完成了,我们将Memcached服务的状态信息保存到了MemcachedStatsOutput这个字段中了,那么我们怎么在页面上显示出来呢?
在进行下一步之前,编译输出MyBBS.BBS.Plugin.MemcachedStats.dll然后上传到论坛根目录的bin目录下。
6.在论坛根目录下面的templete\default\中新建memcachedstats.htm,写入下面的代码:
%template_header%>
divid="
nav"
divclass="
wraps_clear"
ahref="
{config.forumurl}"
class="
title"
{config.forumtitle}<
/a>
&
raquo;
strong>
MemcachedStats<
/strong>
/div>
wrapwith_sides_clearhelp"
id="
wrap"
side"
sideinner"
cpmain"
cpcontent"
h3class="
lightlink"
/h3>
hrclass="
solidline"
/>
{MemcachedStatsOutput}
%template_copyright%>
%template_footer%>
这里我们重点注意红色的部分,我们就是在这里来把我们上面的类库里面的MemcachedStatsOutput字段在这里输出的。
7.进入论坛后台管理系统,点击“界面风格”——“模板管理”——“default”,这时我们就可以看到出现了memcachedstats这个模板了,勾中前面的复选框,然后选择“按选择的模板文件生成页面”。
8.上面的工作完成之后,我们在浏览器中输入:
您的论坛地址\memcachedstats.aspx,就可以看到统计的Memcached服务的信息了,如图:
四、结束语与参考信息
怎么样,还是很简单的吧,当然这里仅仅是做了最基本的开发了,不过相信这些弄清楚了,其它的开发就不是很复杂了,大家也都可以开发出自己更多丰富多彩的功能了。
下面列出的是其他的一些参考资料,希望对大家有帮助:
DiscuzNT界面模板的基本语法:
Memcached的安装:
网友编写的用php代码展示Memcached状态的代码:
•0Comments
memcached完全剖析–1.memcached的基础时间:
2009-06-1411:
00:
02来源:
网络作者:
未知点击:
177次
我是mixi株式会社开发部系统运营组的长野。
日常负责程序的运营。
从今天开始,将分几次针对最近在Web应用的可扩展性领域的热门话题memcached,与我公司开发部研究开发组的前坂一起,说明其内部结构和使用。
memcached是什么?
memcached的特征
协议简单
基于libevent的事件处理
内置内存存储方式
memcached不互相通信的分布式
安装memcached
memcached的安装
memcached的启动
用客户端连接
使用Cache:
Memcached
Memcached连接memcached
保存数据
获取数据
删除数据
增一和减一操作
总结
memcached是以LiveJournal旗下DangaInteractive公司的BradFitzpatric为首开发的一款软件。
现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。
许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。
但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、网站显示延迟等重大影响。
这时就该memcached大显身手了。
memcached是高性能的分布式内存缓存服务器。
一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
图1一般情况下memcached的用途
memcached作为高速运行的分布式缓存服务器,具有以下的特点。
memcached的服务器客户端通信并不使用复杂的XML等格式,而使用简单的基于文本行的协议。
因此,通过telnet也能在memcached上保存数据、取得数据。
下面是例子。
$telnetlocalhost11211
Trying127.0.0.1...
Connectedtolocalhost.localdomain(127.0.0.1).
Escapecharacteris'
^]'
.
setfoo003
(保存命令)
bar
(数据)
STORED
(结果)
getfoo
(取得命令)
VALUEfoo03
(数据)协议文档位于memcached的源代码内,也可以参考以下的URL。
libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。
即使对服务器的连接数增加,也能发挥O
(1)的性能。
memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。
关于事件处理这里就不再详细介绍,可以参考DanKegel的TheC10KProblem。
libevent:
//www.monkey.org/~provos/libevent/
TheC10KProblem:
为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。
由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。
另外,内容容量达到指定值之后,就基于LRU(LeastRecentlyUsed)算法自动删除不使用的缓存。
memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。
关于内存存储的详细信息,本连载的第二讲以后前坂会进行介绍,请届时参考。
memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。
各个memcached不会互相通信以共享信息。
那么,怎样进行分布式呢?
这完全取决于客户端的实现。
本连载也将介绍memcached的分布式。
图2memcached的分布式
接下来简单介绍一下memcached的使用方法。
memcached的安装比较简单,这
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MemCached 说明
![提示](https://static.bdocx.com/images/bang_tan.gif)