发布于 2015-11-12 14:32:31 | 335 次阅读 | 评论: 0 | 来源: PHPERZ

这里有新鲜出炉的Memcached教程,程序狗速度看过来!

Memcache 高性能分布式内存对象缓存系统

Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。


注意:以下相关软件是以2015-03-23日能找到的最新的版本为基础提供的教程

一、下载并安装memcached服务器端软件

这个就好比mysql数据库,必须安装mysql服务器端软件。

1、下载服务端memcached软件

32bit:下载 memcached-win32-1.4.4-14.zip(直接下)里面包含6个文件,将解压后的文件夹随便放在什么位置(例如:D:\wamp_win7\bin\memcached-win32-1.4.4-14,我本地使用wamp搭建的服务器)。
memcached-win32-1.4.4-14.zip下载页面:http://blog.couchbase.com/memcached-144-windows-32-bit-binary-now-available

64bit:如果需要win64版,下载 memcached-win64-1.4.4-14.zip(直接下),里面有个三个文件,用这三个文件覆盖win32下同名文件。
memcached-win64-1.4.4-14.zip下载页面:http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available


2、以管理员身份运行 cmd.exe,并转至memcached所在文件夹,比如: 

cd  D:\wamp_win7\bin\memcached-win32-1.4.4-14

注意:如果不以管理员身份运行,将得到报错“failed to install service or service already installed”

3、安装memcached:  

d:\wamp_win7\bin\memcached-win32-1.4.4-14> memcached.exe -d  install

(之后屏幕无任何提示,可以再[控制面板]->[管理工具]->[服务]中查看到memcached)

4、启动memcached:
(1)启动方法1:
d:\wamp_win7\bin\memcached-win32-1.4.4-14> memcached.exe -d start
之后屏幕无任何提示,但是在“任务管理器”中勾选“显示所有用户进程”,此时可以看到memcached.exe进程正在运行
默认端口11211,外部访问需要开放该端口,否则无法成功连接。
(2)启动方法2:
[控制面板]->[管理工具]->[服务] 找到 memcached 服务,双击它打开如下图

启动类型:选择【自动】
服务状态:点击下面的【启动】
备注:可执行文件的路径和我上面所说的路径有些区别可以忽略


5、memcached基本参数设置:
-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 显示帮助

设置参数时需要先停止memcached,然后用命令行设置,比如:

1
D:\wamp_win7\bin\memcached-win32-1.4.4-14> memcached.exe -m 1 -d start

 

6、停止memcached:

1
D:\wamp_win7\bin\memcached-win32-1.4.4-14> memcached.exe -d stop


7、卸载memcached:

1
D:\wamp_win7\bin\memcached-win32-1.4.4-14> memcached.exe -d uninstall

 

相关问题:
1、设置最大占用内存后好像没起作用。
-m tells memcached how much RAM to use for item storage (in megabytes). Note carefully that this isn't a global memory limit, so memcached will use a few % more memory than you tell it to. Set this to safe values. Setting it to less than 48 megabytes does not work properly in 1.4.x and earlier. It will still use the memory.

转自:http://stackoverflow.com/questions/6112324/memcached-using-more-than-max-memory
参考:https://code.google.com/p/memcached/wiki/NewConfiguringServer

2、在同一个程序集里将一个值放入到memcache里,马上去时可以取到,但是在另一个程序集里取的时候取不到,或者telnet也拿不到值。
可能问题及解决办法:
a. 存储的值序列化后不同类型,则需要将其更新为同一类型,建议使用同一的常见类型,如string,int等,放入string可以拼成一个xml字符串,然后到使用的时候在做解析
b. 很有可能是memcache池已经满了,可以设置<socketPool minPoolSize="100" maxPoolSize="1000" connectionTimeout="00:10:00" deadTimeout="00:02:00"/>


参考1:win7 安装 memcached
http://www.cnblogs.com/jiajinyi/p/3531381.html

 



二、PHP启用memcache扩展,使得php能够操作memcache

1、下载php memcache.dll 扩展

官网下载地址:http://pecl.php.net/package/memcache/3.0.8/windows
注意选对版本,因为我本地使用的是wamp搭建的环境,线程安全版本、PHP为5.3x,所以我下载的是5.3 Thread Safe (TS) x86(TS为线程安全[Thread Safety]的意思),如何查看是线程安全还是非线程安全呢?以及如何查看时PHP版本呢?


相关问题:

1、如何查看是线程安全还是非线程安全呢?
例如:在跟目录下新建一个php文件,ox.php ,然后再里面输入

1
<?php phpinfo();

保存,并在浏览器访问该文件,如下图(即通过php的内置函数phpinfo()查看php的环境信息)

可见:PHP的版本为5.3.13,线程安全为开启即是线程安全版本。

2、解压缩下载的文件(php_memcache-3.0.8-5.3-ts-vc9-x86.zip),如下


把 php_memcache.dll 扩展文件拷贝到 php 的扩展目录中,例如(E:\wamp_win7\bin\php\php5.3.13\ext)

 

3、修改php.ini文件,加载memcache.dll扩展

打开php.ini(例如:E:\wamp_win7\bin\apache\apache2.2.22\bin\php.ini 因为我使用的是wamp搭建的,所以php.ini的文件是在这里,其他的一般是在php的目录下)
找到一堆设置扩展的地方或是最底部,添加 

1
extension=php_memcache.dll

保存,然后重启apache或是nginx或是iis,即可通过phpinfo() 函数执行后的页面看到memcache已经加载了

终于搞定!



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务