memcached下载参考地址:memcahced下载
接口
memcached介绍:
memcachde是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件。
现在已经成为众多大型网站服务中提高web应用扩展性的重要原因,许多网站都是从关系数据库
读取数据,然后在客户端显示,但是,如果用户量特别大,跟数据库交互次数自然频繁,服务器
无法承受如此巨大的压力,这个时候,memcached得已大显身手。
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。
它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。
Memcached基于一个存储键/值对的hashmap。
其守护线程(daemon )是用c写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
用途示意图:
memcached的特征:
协议简单:
memcached的服务器客户端通信并不使用复杂的XML等格式,而使用简单的基于文本行的协议。
因此,通过telnet也能在memcached上保存数据、取得数据。以下介绍windows上安装memcached,
安装成功后可以进行测试。
$ telnet localhost 11211
set foo 0 0 3 (保存命令)
bar (数据)
STORED (结果)
get foo (取得命令)
VALUE foo 0 3 (数据)
bar (数据)
安装后先输入stats,如果成功,会出一堆参数,在参数下面接着输入以上命令,测试即可,测试截图如下,等安装后回头再测试,往下瞧。
基于libevent的事件处理:
libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。
即使对服务器的连接数增加,也能发挥O(1)的性能。
memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。
关于事件处理这里就不再详细介绍,可以参考Dan Kegel的The C10K Problem。
内置内存存储方式:
为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。
由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。
另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。
memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。
memcached不互相通信的分布式:
memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。
各个memcached不会互相通信以共享信息。那么,怎样进行分布式呢?这完全取决于客户端的实现。
以下为memcached的分布式图:
这里主要讲memcached在windows平台上如何安装,大部分人在家还是用windows,在公司就可以玩公司的linux。
一,管理员的权限打开cmd窗口
打开方式1,你可以在你的windows下通过下图方式找到cmd.exe,并且以管理员的方式打开:
打开方式2,通过windows左下角的开始中输入cmd,以管理员的身份运行。
二.将你下载的memcached解压,把memcached.exe放在你喜欢的文件目录下
比如:
三.在cmd窗口通过命令安装memcached
F:指向F盘,cd F:\memcached为memcached.exe所在目录,memcached(或memcached.exe) -d install为安装命令
四.开启memcached服务
通过快捷键ctrl+alt+del去向服务窗口或通过services.msc去向服务窗口
服务窗口如下:
这个时候,你看到Memcached Server说明安装上了,可以点击启动,或在cmd窗口下,采用跟安装类似的启动命令memcached -d start启动服务
五.测试安装是否成功
在cmd窗口中,通过telnet localhost 11211测试
连接后弹出一个窗口,输入stats,出现如下内容,说明安装成功:
安装注意事项和可能出现的错误:
(1)记得每个cmd窗口一定要右键以管理员的身份运行,否则不行。
(2)telnet连接时报错,不是内部命令,可以看我的memcahced分类下有一篇关于这个问题的解决办法
(3)telnet localhost 11211弹出窗口后输入stats是隐式的,输入回车就可以看到出来一堆东西,说明安装成功
(4)memcached -d install(安装命令),memcached -d start(启动服务命令)
(5)telnet连接前记得用命令或手动启动memcached服务,如果忘了,会报连接不上主机ip