Memcached(一):基本应用

来源:互联网 发布:java基础教程 csdn 编辑:程序博客网 时间:2024/06/06 02:32

一直在用Memcached,但从来没有静一下来想一下它的长短项。这里对它做一个系统的总结。

 

准备工作

下载Memcached服务端(memcached.exe)

下载memcached客户端(我用的是C#,所以下.net版;您也根据需要下载对应的版本,如PHP)

 

Memcached是什么?

 

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度

 

如何创建Memcached服务器?

 

操作很简单:

1.下载memcache的windows稳定版,解压放某个盘下面,比如在F:/Memcached

2. 输入安装命令,输入启动命令。(我写了一个批文件)具体可看说明,安装命令。

 

以管理员身份运行,即可。

注意:在此过程中出现一个问题,

去网上下载pthreadGC2.dll文件,放在了在C:/Windows/System32/

 

 

在客户端如何使用?

1.下载BeITMemcached客户码源码http://code.google.com/p/beitmemcached/downloads/detail?name=BeITMemcached_source_2010_08_04.zip(您可以直接下载相关的程序集,我只是研究的需要才下源码)

 

2. 封装客户端方便使用:

 

3 在应用程序中使用:

 

通常对Memcached客户端进行封装的方法

有些实用主义,挺有用。

这里有BeITMemcached所有的方法,你可以根据需要进行封装 。

 

创建分布式缓存服务器

memcached为了减少单个memcached的负载,我们可以创建多个memcached服务,具体创建数量根据实现的需求而定。

例如:可以在一台机器上运行多个实例,如果把多个memcached,注册为服务,通过SC命令我们可以创建服务。

 

Memcached应用长项

1.Memcached 节省了磁盘读写、数据库连接、Sql解析资源;它是使用内存来管理数据的, 所以它可以提供比直接读取数据库更好的性能。在大型系统中,访问同样的数据是很频繁的,memcached可以大大降低数据库压力,所以它一般作为数据库前端使用。

2.Memcached是分析式的,解决了.net分布式缓存的劣势。

3.memcached也经常作为服务器之间数据共享的存储媒介,例如在SSO系统中保存系统单点登陆状态的数据就可以保存在memcached中,被 多个应用共享。

Memcached的短项

1.那些不需要分布的,不需要共享的,或者干脆规模小到只有一台服务器的应用, memcached不会带来任何好处,相反还会拖慢系统效率(慢几十倍,如果与本地缓存相比),因为网络连接同样需要资源;所以此应该使用本地缓存。

2.Memcached是将数据放在内存中,不是持久化存储,一旦服务器重启,数据将会丢失。

3.Memcached的瓶颈是网络连接(因为它没有复杂的操作),所以会出现千兆网络带宽都满负荷了,但CPU资源占用并不高的情况。

 

说明

一、安装命令

-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助

排错用的常用命令: 
1.telnet到memcache服务器,如:telnet 192.168.103.11 11211(11211是memcache的默认端口) 
2.stats 查看基本信息 
3.stats items  可以看到出现 很多的items行 
4.stats cachedump 3 0(3是items后面的数字,0表示显示所有的) 
5.get key(key 为 item后面的字符串即键) 

第二篇:Memcached(二):Memcached的结构、存储规则探索

资源

下载地址 http://www.memcached.org/

memcached 分布式算法 http://tech.idv2.com/2008/07/24/memcached-004/