THINKPHP3.2+PHP5.3 配置MEMCACHE
一、下載并安裝memcached服務器端軟件
? ?1、下載memcached軟件
? ? ? 32位下載地址:?memcached-win32-1.4.4-14.zip(直接下載),memcached-win32-1.4.4-14.zip下載頁面: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下載頁面:http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available
? ? ? 我使用的是wamp,64位電腦。下載memcached服務器端軟件壓縮包。
解壓壓縮包到指定目錄,我選擇的是D:\memcached
?2、安裝memcached
? ? ?以管理員身份運行 cmd.exe,并轉至memcached所在文件夾。并安裝memcached。安裝成服務
? 安裝之后無任何提示。
3、啟動memcached服務
? ?繼續在cmd.exe 執行開啟memcached命令 :
| 1 | memcached.exe -d start |
然后去任務管理器中進程查看memcached服務是否已經啟動。
?
4、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 顯示幫助
? ? 5、memcached的停止與卸載命令
1 D:\memcached> memcached.exe -d stop 2 D:\memcached> memcached.exe -d uninstall?
二、PHP安裝memcache擴展
???1、下載memcache.dll擴展
? ?下載地址:http://pecl.php.net/package/memcache/3.0.8/windows
? ?下載注意事項:選擇匹配自己環境的版本以及線程安全版本。
?我本地使用wamp2.5 php 版本是5.5 ?Windows 64位 所以下載的是5.5 Thread Safe (TS) x64
? 2、下載完成之后,解壓壓縮包如下圖。
? ? ?將其中的php_memcache.dll 擴展文件拷貝到 php 的擴展目錄中,例如(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 |
如圖:
注意:必須在新的一行,前面不能有分號。分號代表注釋點,不能使用。
?
然后保存之后,重啟服務器(apache或是nginx或是iis)我直接重啟wamp就好。
Memcache緩存驅動 <?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緩存驅動*/ class Memcache extends Cache {/*** 架構函數* * @param array $options* 緩存參數* @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* 存儲數據* @param integer $expire* 有效時間(秒)* @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) {// 記錄緩存隊列$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();} }?
轉載于:https://www.cnblogs.com/kingchou/p/7262110.html
總結
以上是生活随笔為你收集整理的THINKPHP3.2+PHP5.3 配置MEMCACHE的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSDN编程挑战——《交替字符串》
- 下一篇: PHP缓存技术相关