Memcached与Memcache的区别及安装
前段时间因工作需要了解了一些关于memeched缓存的技术,并进行了整理如下:
说明:
Memcache和Memcached 其实是一个东西,只是php中要是用的扩展不一样;
windows下只能安装php_memcache.dll 扩展并不存在 php_memcached.dll, 所以windows 中只能使用$mcd = new Memcache() 不能使用new Memcached();
memcached的1.2.4及以上增加了CAS(Check and Set)协议,对于同一key的多进行程的并发处理问题。但php的扩展memcache,不支持cas,所以我们要装memcached扩展,memcached扩展是基于libmemcached,所以要先安装libmemcached。
php中的memcache扩展与memcached扩展相对比,memcache扩展已经停止了维护且功能相对较少;而memcached扩展一直有维护更新,功能强大。
一.下载memcached服务:
下载地址:https://pan.baidu.com/share/init?surl=c1Yep6C 密码:jazy
二.安装memcached:
如果在没有安装过的情况下,出现"failed to install service or service already installed"错误,则是cmd.exe需要用管理员身份运行。
以管理员身份运行 cmd.exe,并转至memcached所在文件夹。并安装memcached。
安装成功后无任何的提示可在服务中查看;
三.启动memcached服务
1、继续在cmd.exe 执行开启memcached命令 :
memcached.exe -d start
然后去任务管理器中进程查看memcached服务是否已经启动。
2、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 显示帮助
3、memcached的停止与卸载命令
memcached.exe -d stop memcached.exe -d uninstall
四.PHP安装memcache扩展
1、下载扩展:
下载地址:https://pan.baidu.com/s/1slVSjA9 密码:dvu9
(注意:PHP版本应与dll文件的版本相匹配。文件里的PHP5.4、PHP5.5、PHP5.6都亲测有用) 或者去http://pecl.php.net/package/memcache/3.0.8/windows选择相应的版本下载
2、将其中的php_memcache.dll 扩展文件拷贝到 php 的扩展目录中,例如:D:\wamp\bin\php\php5.5.12\ext
3、修改php.ini文件
打开php的php.ini文件(我的地址是:D:\wamp\bin\php\php5.5.12\)
添加一行代码:
extension=php_memcache.dll
然后保存之后,重启服务器
检查是否加载成功:phpinfo中查看,假如如图所示,则成功
然后可以再项目中运行;
在thinkphp的使用:
(1)在config\config.php 配置中进行配置:
'DATA_CACHE_TYPE' => 'Memcache',//缓存方式
'MEMCACHE_HOST' => '127.0.0.1:11211',// 缓存服务器地址
'DATA_CACHE_TIME' => '3600',//缓存存在时间s
(2)在Thinkphp\conf\convention.php中进行配置;
'DATA_CACHE_TYPE' => 'Memcache',
(3)在控制器中调用进行缓存处理;(具体操作参照开发手册)