THINKPHP3.2+PHP5.3 配置MEMCACHE
一、下載并安裝memcached服務(wù)器端軟件
? ?1、下載memcached軟件
? ? ? 32位下載地址:?memcached-win32-1.4.4-14.zip(直接下載),memcached-win32-1.4.4-14.zip下載頁(yè)面:http://blog.couchbase.com/memcached-144-windows-32-bit-binary-now-available
? ? ? 64位下載地址:memcached-win64-1.4.4-14.zip(直接下載),memcached-win64-1.4.4-14.zip下載頁(yè)面:http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available
? ? ? 我使用的是wamp,64位電腦。下載memcached服務(wù)器端軟件壓縮包。
解壓壓縮包到指定目錄,我選擇的是D:\memcached
?2、安裝memcached
? ? ?以管理員身份運(yùn)行 cmd.exe,并轉(zhuǎn)至memcached所在文件夾。并安裝memcached。安裝成服務(wù)
? 安裝之后無(wú)任何提示。
3、啟動(dòng)memcached服務(wù)
? ?繼續(xù)在cmd.exe 執(zhí)行開啟memcached命令 :
| 1 | memcached.exe -d start |
然后去任務(wù)管理器中進(jìn)程查看memcached服務(wù)是否已經(jīng)啟動(dòng)。
?
4、memcached基本參數(shù)設(shè)置
-p 監(jiān)聽的端口
-l 連接的IP地址, 默認(rèn)是本機(jī)
-d start 啟動(dòng)memcached服務(wù)
-d restart 重起memcached服務(wù)
-d stop|shutdown 關(guān)閉正在運(yùn)行的memcached服務(wù)
-d install 安裝memcached服務(wù)
-d uninstall 卸載memcached服務(wù)
-u 以的身份運(yùn)行 (僅在以root運(yùn)行的時(shí)候有效)
-m 最大內(nèi)存使用,單位MB。默認(rèn)64MB
-M 內(nèi)存耗盡時(shí)返回錯(cuò)誤,而不是刪除項(xiàng)
-c 最大同時(shí)連接數(shù),默認(rèn)是1024
-f 塊大小增長(zhǎng)因子,默認(rèn)是1.25
-n 最小分配空間,key+value+flags默認(rèn)是48
-h 顯示幫助
? ? 5、memcached的停止與卸載命令
1 D:\memcached> memcached.exe -d stop 2 D:\memcached> memcached.exe -d uninstall?
二、PHP安裝memcache擴(kuò)展
???1、下載memcache.dll擴(kuò)展
? ?下載地址:http://pecl.php.net/package/memcache/3.0.8/windows
? ?下載注意事項(xiàng):選擇匹配自己環(huán)境的版本以及線程安全版本。
?我本地使用wamp2.5 php 版本是5.5 ?Windows 64位 所以下載的是5.5 Thread Safe (TS) x64
? 2、下載完成之后,解壓壓縮包如下圖。
? ? ?將其中的php_memcache.dll 擴(kuò)展文件拷貝到 php 的擴(kuò)展目錄中,例如(D:\wamp\bin\php\php5.5.12\ext)
3、修改php.ini文件
? 打開php的php.ini文件(我的地址是:D:\wamp\bin\apache\apache2.4.9\bin\php.ini)
? 添加一行代碼:
| 1 | extension=php_memcache.dll |
如圖:
注意:必須在新的一行,前面不能有分號(hào)。分號(hào)代表注釋點(diǎn),不能使用。
?
然后保存之后,重啟服務(wù)器(apache或是nginx或是iis)我直接重啟wamp就好。
Memcache緩存驅(qū)動(dòng) <?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK IT ] // +---------------------------------------------------------------------- // | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: liu21st <liu21st@gmail.com> // +---------------------------------------------------------------------- namespace Think\Cache\Driver;use Think\Cache; defined('THINK_PATH') or exit();/*** Memcache緩存驅(qū)動(dòng)*/ class Memcache extends Cache {/*** 架構(gòu)函數(shù)* * @param array $options* 緩存參數(shù)* @access public*/function __construct($options = array()){if (! extension_loaded('memcache')) {E(L('_NOT_SUPPORT_') . ':memcache');}$options = array_merge(array('host' => C('MEMCACHE_HOST') ? : '127.0.0.1','port' => C('MEMCACHE_PORT') ? : 11211,'timeout' => C('DATA_CACHE_TIMEOUT') ? : false,'persistent' => false), $options);$this->options = $options;$this->options['expire'] = isset($options['expire']) ? $options['expire'] : C('DATA_CACHE_TIME');$this->options['prefix'] = isset($options['prefix']) ? $options['prefix'] : C('DATA_CACHE_PREFIX');$this->options['length'] = isset($options['length']) ? $options['length'] : 0;$func = $options['persistent'] ? 'pconnect' : 'connect';$this->handler = new \Memcache();$options['timeout'] === false ? $this->handler->$func($options['host'], $options['port']) : $this->handler->$func($options['host'], $options['port'], $options['timeout']);}/*** 讀取緩存* * @access public* @param string $name* 緩存變量名* @return mixed*/public function get($name){N('cache_read', 1);return $this->handler->get($this->options['prefix'] . $name);}/*** 寫入緩存* * @access public* @param string $name* 緩存變量名* @param mixed $value* 存儲(chǔ)數(shù)據(jù)* @param integer $expire* 有效時(shí)間(秒)* @return boolean*/public function set($name, $value, $expire = null){N('cache_write', 1);if (is_null($expire)) {$expire = $this->options['expire'];}$name = $this->options['prefix'] . $name;if ($this->handler->set($name, $value, 0, $expire)) {if ($this->options['length'] > 0) {// 記錄緩存隊(duì)列$this->queue($name);} return true;} return false;}/*** 刪除緩存* * @access public* @param string $name* 緩存變量名* @return boolean*/public function rm($name, $ttl = false){$name = $this->options['prefix'] . $name;return $ttl === false ? $this->handler->delete($name) : $this->handler->delete($name, $ttl);}/*** 清除緩存* * @access public* @return boolean*/public function clear(){return $this->handler->flush();} }?
轉(zhuǎn)載于:https://www.cnblogs.com/kingchou/p/7262110.html
總結(jié)
以上是生活随笔為你收集整理的THINKPHP3.2+PHP5.3 配置MEMCACHE的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CSDN编程挑战——《交替字符串》
- 下一篇: Struts2 缺少包