1. 云栖社区>
  2. PHP教程>
  3. 正文

memcache安装和下载(win7)及登陆

作者:用户 来源:互联网 时间:2017-11-30 18:02:19

安装win7下载登陆memcache

memcache安装和下载(win7)及登陆 - 摘要: 本文讲的是memcache安装和下载(win7)及登陆, 一、Memcached和Memcache的区别: 网上关于Memcached和Memcache的区别的理解众说纷纭,我个人的理解是: Memcached是一个内存缓存系统,而Memcache是php的一个扩展,是php用于操作和管理Me

一、MemcachedMemcache的区别:


网上关于MemcachedMemcache的区别的理解众说纷纭,我个人的理解是:

Memcached是一个内存缓存系统,而Memcachephp的一个扩展,是php用于操作和管理Memcached的工具。如果安装了Memcached但没有安装Memcachephp无法操控Memcached,但是可以使用命令行来操控Memcached;如果安装了Memcache却没安装Memcached,则无法使用。只有同时安装了MemcachedMemcache,才能在PHP中使用Memcached

以上仅代表个人观点。

网上关于MemcachedMemcache的安装教程有很多,下面是我参考网上教程并动手操作后总结出来的方法,注意,我的操作是基于64win7系统的。


 

二、安装memcached


1.下载地址:http://pan.baidu.com/s/1gdKbp8R

(这是在网上找的下载地址,我试过,可以下载)

2.解压下载后的文件,把它放到一个目录中,如D:/memcached

3.打开cmd,进入memcached解压后存放的目录,运行命令:

memcached.exe-d install

如果没有意外的话已经安装成功了。

(目录中应该有memcached.exe这个文件)

4.测试是否安装成功:

打开cmd,进入memcached解压后存放的目录,运行命令:

memcached -h,若安装成功,会出现如下界面:


  


 


5.启动memcached

打开cmd,进入memcached解压后存放的目录,运行命令:

memcached.exe-d start

这时memcached已经启动,在任务管理器中可以看到这个进程:


 


 


6.连接Memcached

打开cmd,运行命令:

telnet127.0.0.1 11211

即可连接Memcached

注:win7中可能会出现“telnet’不是内部或外部命令”的错误,这是因为系统中默认没有安装telnet的缘故,可在“控制面板”->“程序”->“程序和功能”->“打开或关闭Windows功能”中打开“Telnet客户端”。


 

三、安装memcachephp扩展:


1.下载地址:http://windows.php.net/downloads/pecl/releases/memcache/3.0.8/

(注意:要下载对应php版本和系统位数的dll文件)

2.php_memcache.dll放到phpext目录下,如:

D:/wamp/bin/php/php5.5.12/ext

3.打开php.ini,在extension处添加一行代码:

extension=php_memcache.dll

4.重启服务器。

5.查看phpextensions服务,php_memcache现在应该可以使用了,即处于打钩状态,之

前是处于叹号状态的,若还处于叹号状态,用鼠标在上面点击一下就好了。

6.通过代码测试php是否已经可以使用memcached

$memcache= new Memcache;

$memcache->connect("127.0.0.1",11211);

echo"Memcached's version: " . $memcache->getVersion() . "<br/>";

$data= array(

'url'=> "http://www.cnblogs.com/wujuntian/",

'name' => "编程人,在天涯"

);

$memcache-> set("info",$data,0,10);

$info= $memcache->get("info");

echo'<pre>';

print_r($info);


 

若能打印出memcache中的信息,则说明phpmemcache扩展已安装成功且能使用了!

 

注意:运行代码时若出现错误Fatal error: Class 'Memcache' not found,有可能是下载的 

     php_memcache.dll文件与php版本不符,或者与系统位数不符。

     我的是64位系统,php版本是5.5.12,下载的是php_memcache-3.0.8-5.5-ts-vc11-x64.zip

     这个文件。


四、登陆使用telnet ip 端口号

MemCache设置添加某一个Key值的时候,传入expiry为0表示这个Key值永久有效,这个Key值也会在30天之后失效,见memcache.c的源代码:

 

[js] viewplaincopy在CODE上查看代码片派生到我的代码片

#defineREALTIME_MAXDELTA 60*60*24*30 

static rel_time_trealtime(const time_t exptime) { 

       if (exptime == 0) return 0; 

       if (exptime > REALTIME_MAXDELTA){  

              if (exptime <=process_started)  

                     return (rel_time_t)1;  

              return (rel_time_t)(exptime -process_started);  

       } else {  

              return (rel_time_t)(exptime +current_time);  

       } 

这个失效的时间是memcache源码里面写的,开发者没有办法改变MemCache的Key值失效时间为30天这个限制

MemCache指令汇总

 

上面说过,已知MemCache的某个节点,直接telnet过去,就可以使用各种命令操作MemCache了,下面看下MemCache有哪几种命令:

 

命   令        作    用

get        返回Key对应的Value值

add        添加一个Key值,没有则添加成功并提示STORED,有则失败并提示NOT_STORED

set        无条件地设置一个Key值,没有就增加,有就覆盖,操作成功提示STORED

replace        按照相应的Key值替换数据,如果Key值不存在则会操作失败

stats        返回MemCache通用统计信息(下面有详细解读)

statsitems        返回各个slab中item的数目和最老的item的年龄(最后一次访问距离现在的秒数)

statsslabs        返回MemCache运行期间创建的每个slab的信息(下面有详细解读)

version        返回当前MemCache版本号

flush_all        清空所有键值,但不会删除items,所以此时MemCache依旧占用内存

quit        关闭连接

stats指令解读

 

stats是一个比较重要的指令,用于列出当前MemCache服务器的状态,拿一组数据举个例子:

 

[js] viewplaincopy在CODE上查看代码片派生到我的代码片

STAT pid 1023 

STAT uptime21069937 

STAT time1447235954 

STAT version1.4.5 

STAT pointer_size64 

STAT rusage_user1167.020934 

STAT rusage_system3346.933170 

STATcurr_connections 29 

STATtotal_connections 21 

STATconnection_structures 49 

STAT cmd_get 49 

STAT cmd_set7458 

STAT cmd_flush0 

STAT get_hits7401 

STAT get_misses57 

..(delete、incr、decr、cas的hits和misses数,cas还多一个badval) 

STAT auth_cmds0 

STAT auth_errors0 

STAT bytes_read22026555 

STAT bytes_written8930466 

STAT limit_maxbytes4134304000 

STAT accepting_conns1 

STATlisten_disabled_num 0 

STAT threads 4 

STAT bytes151255336 

STAT current_items57146 

STAT total_items580656 

STAT evicitions0 

这些参数反映着MemCache服务器的基本信息,它们的意思是:

参  数 名        作      用

pid        MemCache服务器的进程id

uptime        服务器已经运行的秒数

time        服务器当前的UNIX时间戳

version        MemCache版本

pointer_size        当前操作系统指针大小,反映了操作系统的位数,64意味着MemCache服务器是64位的

rusage_user        进程的累计用户时间

rusage_system        进程的累计系统时间

curr_connections        当前打开着的连接数

total_connections        当服务器启动以后曾经打开过的连接数

connection_structures        服务器分配的连接构造数

cmd_get        get命令总请求次数

cmd_set        set命令总请求次数

cmd_flush        flush_all命令总请求次数

get_hits        总命中次数,重要,缓存最重要的参数就是缓存命中率,以get_hits/ (get_hits + get_misses)表示,比如这个缓存命中率就是99.2%

get_misses        总未命中次数

auth_cmds        认证命令的处理次数

auth_errors        认证失败的处理次数

bytes_read        总读取的字节数

bytes_written        总发送的字节数

 limit_maxbytes        分配给MemCache的内存大小(单位为字节)

accepting_conns        是否已经达到连接的最大值,1表示达到,0表示未达到

listen_disabled_num        统计当前服务器连接数曾经达到最大连接的次数,这个次数应该为0或者接近于0,如果这个数字不断增长,就要小心我们的服务了

threads        当前MemCache总线程数,由于MemCache的线程是基于事件驱动机制的,因此不会一个线程对应一个用户请求

bytes        当前服务器存储的items总字节数

current_items        当前服务器存储的items总数量

total_items        自服务器启动以后存储的items总数量statsslab指令解读 


以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索安装 , win7 , 下载 , 登陆 memcache ,以便于您获取更多的相关知识。