程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> memcache啟動命令詳解

memcache啟動命令詳解

編輯:PHP綜合

1、linux環境下:
/usr/local/lib/memcached -d -m 2048 -u root -c 1024 -p 11211 -P /tmp/memcached1.pid
/usr/local/lib/memcached -d -m 2048 -u root -c 1024 -p 11211 -P /tmp/memcached2.pid
2、windows環境下:
在windows下我們可以用命令
memcached -d install memcached -m 128 -n 128 -c 30720 -p 11211 -d start 

把memcached注冊為服務,讓系統啟動時自動運行
memcached為了減少單個memcached的負載,可以在一台機器上運行多個實例,如果把多個memcached
注冊為服務呢,通過SC命令我們可以創建服務
建立服務器1:
sc create memcached1 binPath= "d:zwampmemcachedmemcached.exe -d runservice  -m 128 -c 512 -p 11211" start= auto DisplayName= "memcached1"
建立服務器2:
sc create memcached2 binPath= "d:zwampmemcachedmemcached.exe -d runservice  -m 128 -c 512 -p 11212" start= auto DisplayName= "memcached2"
建立服務器3:

sc create memcached3 binPath= "d:zwampmemcachedmemcached.exe -d runservice  -m 128 -c 512 -p 11213" start= auto DisplayName= "memcached3"  

另外

-p 指定端口號(默認11211)  

-t 線程數(默認4)  

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

例如:

/usr/local/memcached/bin/memcached -d -p 11211 -u memcache -m 64 -c 1024 -P /var/run/memcached.pid

對Memcached緩存服務的狀態查詢,可以先telnet連接上服務:telnet 127.0.0.1 11211 ,然後使用 stats命令查看緩存服務的狀態,會返回如下的數據:   
        time:    1255537291                               服務器當前的unix時間戳 
        total_items:    54                                     從服務器啟動以後存儲的items總數量
        connection_structures:    19                    服務器分配的連接構造數 
        version:    1.2.6                                        memcache版本 
        limit_maxbytes:    67108864                    分配給memcache的內存大小(字節) 
        cmd_get:    1645                                      get命令(獲取)總請求次數 
        evictions:    0                                            為獲取空閒內存而刪除的items數(分配給memcache的空間用滿後需
                                                                         要刪除舊的items來得到空間分配給新的items)
        total_connections:    19                           從服務器啟動以後曾經打開過的連接數 
        bytes:    248723                                      當前服務器存儲items占用的字節數 
        threads:    1                                             當前線程數 
        get_misses:    82                                      總未命中次數 
        pointer_size:    32                                    當前操作系統的指針大小(32位系統一般是32bit)
        bytes_read:    490982                              總讀取字節數(請求字節數) 
        uptime:    161                                           服務器已經運行的秒數 
        curr_connections:    18                             當前打開著的連接數 
        pid:    2816                                               memcache服務器的進程ID
        bytes_written:    16517259                     總發送字節數(結果字節數) 
        get_hits:    1563                                      總命中次數 
        cmd_set:    54                                          set命令(保存)總請求次數 
        curr_items:    28                                       服務器當前存儲的items數量

Memcache 命中率

緩存命中率 = get_hits/cmd_get * 100% (總命中次數/總請求次數)要提高memcached的命中率,預估我們的value大小並且適當的調整內存頁大小和增長因子是必須的。命中率的提升可以通過多種方案實現.
其一,提高服務獲取的內存總量
其二,提高空間利用率,這實際上也是另一種方式的增加內存總量
其三,應用一級別上再來一次LRU
其四,對於整體命中率,可以采取有效的冗余策略,減少分布式服務時某個server發生服務抖動的情況 

Memcache 一些注意
1. memcache已經分配的內存不會再主動清理。
2. memcache分配給某個slab的內存頁不能再分配給其他slab。
3. flush_all不能重置memcache分配內存頁的格局,只是給所有的item置為過期。
4. memcache最大存儲的item(key+value)大小限制為1M,這由page大小1M限制
5. 由於memcache的分布式是客戶端程序通過hash算法得到的key取模來實現,不同的語言可能會采用不同的hash算法,同樣的客戶端程序也有可能 使用相異的方法,因此在多語言、多模塊共用同一組memcached服務時,一定要注意在客戶端選擇相同的hash算法
6.啟動memcached時可以通過-M參數禁止LRU替換,在內存用盡時add和set會返回失敗
7.memcached啟動時指定的是數據存儲量,沒有包括本身占用的內存、以及為了保存數據而設置的管理空間。因此它占用的內存量會多於啟動時指定的內存分配量,這點需要注意。
8.memcache存儲的時候對key的長度有限制,php和C的最大長度都是250

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved