DedeCMS V5.7 memcache配置說明

[摘要]memcache是一個高性能的分佈式的內存對象緩存系統,經過在內存裏維護一個統一的巨大的hash表,它可以用來存儲各類格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。


1、安裝Memcache服務:

1.1.linux下的Memcache安裝: php

  1. 下載 memcache的linux版本,注意 memcached 用 libevent 來作事件驅動,因此要先安裝有 libevent。
  2. 安裝 pecl::memcache。

用 pecl 命令行工具安裝: html

pecl install memcache

或直接從源碼安裝: linux

phpize
./configure
make
make install

1.2.Windows下的Memcache安裝: web

  1. 下載memcache的windows穩定版,解壓放某個盤下面,好比在c:\memcached
  2. 在終端(也即cmd命令界面)下輸入 c:\memcached\memcached.exe -d install 安裝
  3. 再輸入:c:\memcached\memcached.exe -d start 啓動。NOTE:之後memcached將做爲windows的一個服務每次開機時自動啓動。這樣服務器端已經安裝完畢了。
  4. 下載php_memcache.dll,請本身查找對應的php版本的文件
  5. 在C:\winnt\php.ini 加入一行 extension=php_memcache.dll
  6. 從新啓動Apache,而後查看一下phpinfo,若是有memcache,那麼就說明安裝成功!

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 顯示幫助

1.3.php.ini中的配置: sql

[Memcache] 數據庫

; 一個高性能的分佈式的內存對象緩存系統,經過在內存裏維護一個統一的巨大的hash表,
; 它可以用來存儲各類格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。 windows

; 是否在遇到錯誤時透明地向其餘服務器進行故障轉移。
memcache.allow_failover = On 緩存

; 接受和發送數據時最多嘗試多少個服務器,只在打開memcache.allow_failover時有效。memcache.max_failover_attempts = 20 服務器

; 數據將按照此值設定的塊大小進行轉移。此值越小所需的額外網絡傳輸越多。
; 若是發現沒法解釋的速度下降,能夠嘗試將此值增長到32768。
memcache.chunk_size = 8192

; 鏈接到memcached服務器時使用的默認TCP端口。
memcache.default_port = 11211

; 控制將key映射到server的策略。默認值"standard"表示使用先前版本的老hash策略。
; 設爲"consistent"能夠容許在鏈接池中添加/刪除服務器時沒必要從新計算key與server之間的映射關係。
;memcache.hash_strategy = "standard"; 控制將key映射到server的散列函數。默認值"crc32"使用CRC32算法,而"fnv"則表示使用FNV-1a算法。
; FNV-1a比CRC32速度稍低,可是散列效果更好。
;memcache.hash_function = "crc32"

;memcache也能夠做爲session的存儲模塊,具體參看:memcache PHP 的 session.save_handler.

2、DedeCMS後臺設置

進入系統後臺,在[系統基本參數]下面的「性能選項」卡當中,關於memcache進行以下配置:

cfg_memcache_enable:是否啓用memcache緩存,若是爲否(N),默認使用文件緩存;
這個選項設置爲開啓:Y

cfg_memcache_mc_defa:默認memcache緩存服務器地址;
這個選項中填入服務器地址:memcache://127.0.0.1:11211/default127

cfg_memcache_mc_oth:附加memcache緩存服務器地址;
這個若是沒有能夠爲空。

3、設定緩存時間

cfg_puccache_time : 需緩存內容全局緩存時間(秒),這個裏面須要設定緩存週期,默認爲36000秒

4、Memcache的分佈式應用

  • * memcache適合與web server安裝在同一server上
  • * memcache能夠在n個端口開n個進程,若是和web server在同一機器的話,還能減小網絡開銷。
  • * 配置簡單,啓動一個進程就好了,免去了配置文件。

5、DedeCMS緩存函數開發說明

因爲封裝成小助手的形式,因此在使用的時候先初始化:

helper('cache');

幾個簡單的方法:

  • SetCache() 設定緩存信息
  • GetCache() 獲取緩存內容
  • DelCache() 刪除緩存內容,簡單的使用例子如
$rs = GetCache('memberlogin', $mid);
if (empty($rs))
{
    $rs = $dsql -> GetOne("SELECT * FROM `#@__member` WHERE mid='{$mid}' ");
    SetCache('memberlogin', $mid, $rs, 1800);
} 


6、參考網站
memcached官網: http://memcached.org/
php的memcache配置大全:  http://blog.csdn.net/hnxxwyq/archive/2008/06/11/2534868.aspx
相關文章
相關標籤/搜索