Ⅰ linux memcached 怎麼使用
當前項目中,linux下memcached的啟動/結束的方式
默認情況下memcached安裝到/usr/local/bin下。
進入安裝目錄,啟動memcached:/usr/local/memcached/bin/memcached -d -c 10240 -m 1024 -u root
獲取運行狀態:echo stats | nc localhost 11211(可以查看出pid) 或使用ps -ef|grep memcached
停止memcached:kill -9 pid (-9表示強制殺死,pid 為進程的進程標識符)
-d 選項是啟動一個守護進程,
-m 是分配給Memcache使用的內存數量,單位是MB,這里是1024MB,默認是64MB
-u 是運行Memcache的用戶,這里是root
-l 是監聽的伺服器IP地址,默認應該是本機
-p 是設置Memcache監聽的埠,默認是11211,最好是1024以上的埠
-c 選項是最大運行的並發連接數,默認是1024,這里設置了10240,按照你伺服器的負載量來設定
-P 是設置保存Memcache的pid文件位置
-h 列印幫助信息
-v 輸出警告和錯誤信息
-vv 列印客戶端的請求和返回信息
ps -ef|grep memcached(命令說明)
grep:功能說明:查找文件里符合條件的字元串。
|:管道命令操作符
ps(process status):功能說明:報告程序狀況。
連接到 memcached:
telnet ip 埠,如telnet 192.168.100.11 11211
stats查看狀態,flush_all:清楚緩存
查看memcached狀態的基本命令,通過這個命令可以看到如下信息:
STAT pid 22459 進程ID
STAT uptime 1027046 伺服器運行秒數
STAT time 1273043062 伺服器當前unix時間戳
STAT version 1.4.4 伺服器版本
STAT pointer_size 64 操作系統字大小(這台伺服器是64位的)
STAT rusage_user 0.040000 進程累計用戶時間
STAT rusage_system 0.260000 進程累計系統時間
STAT curr_connections 10 當前打開連接數
STAT total_connections 82 曾打開的連接總數
STAT connection_structures 13 伺服器分配的連接結構數
STAT cmd_get 54 執行get命令總數
STAT cmd_set 34 執行set命令總數
STAT cmd_flush 3 指向flush_all命令總數
STAT get_hits 9 get命中次數
STAT get_misses 45 get未命中次數
STAT delete_misses 5 delete未命中次數
STAT delete_hits 1 delete命中次數
STAT incr_misses 0 incr未命中次數
STAT incr_hits 0 incr命中次數
STAT decr_misses 0 decr未命中次數
STAT decr_hits 0 decr命中次數
STAT cas_misses 0 cas未命中次數
STAT cas_hits 0 cas命中次數
STAT cas_badval 0 使用擦拭次數
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 15785 讀取位元組總數
STAT bytes_written 15222 寫入位元組總數
STAT limit_maxbytes 1048576 分配的內存數(位元組)
STAT accepting_conns 1 目前接受的鏈接數
STAT listen_disabled_num 0
STAT threads 4 線程數
STAT conn_yields 0
STAT bytes 0 存儲item位元組數
STAT curr_items 0 item個數
STAT total_items 34 item總數
STAT evictions 0 為獲取空間刪除item的總數
另外一個例子:
啟動/結束
memcached -d -m 10 -u root -l 192.168.0.122 -p 11200 -c 256 -P /tmp/memcached.pid
-d 選項是啟動一個守護進程,
-m 是分配給Memcache使用的內存數量,單位是MB,這里是10MB
-u 是運行Memcache的用戶,這里是root
-l 是監聽的伺服器IP地址,如果有多個地址的話,這里指定了伺服器的IP地址192.168.0.122
-p 是設置Memcache監聽的埠,這里設置了12000,最好是1024以上的埠
-c 選項是最大運行的並發連接數,默認是1024,這里設置了256,按照你伺服器的負載量來設定
-P 是設置保存Memcache的pid文件
kill `cat /tmp/memcached.pid`
獲取運行狀態
echo stats | nc 192.168.1.123 11200
watch "echo stats | nc 192.168.1.123 11200" (實時狀態)
Ⅱ memcached已經安裝,調試程序提示Fatal error: Class 'Memcached' not found in
代碼測試是否安裝雹棚:
$mem=newMemcache;
$mem->connect("127.0.0.1",11211);
$mem->set('key','Thisisatest!',0,60);
$val=$mem->get('key');
(2)memcached操作命令擴展閱讀:
使用注意事項:
memcached的API使用32位元的循環冗餘校驗(CRC-32)計算鍵值後,將資料分散在不同的機器上。當表格滿了以後,接下來新增的資料會以LRU機制替換掉。
由於memcached通常只是當作快取系統使用,所以使用memcached的應用程式在寫回較慢的系統時(像仔大是後端的資料庫)需要額外的程式碼更新memcached內的資源戚則料。
Ⅲ php 怎麼配置memcached
分為linux和windows系統下:
1、首先下載memcache的windows版本,將下載下來的文件解壓出來後會看見一個名為memcached.exe的可執行程序
2、將該文件放到指定目錄,如D盤
3、安裝:
開始->運行->cmd打開命令窗口
進入D盤:cd d:
安裝memcache服務:
在命令窗口輸入:
memacahed.exe -d install
等待命令執行完成後,就可以在服務列表中看到memcached服務
4、啟動memcache服務:
memcached.exe -d start
5、可以通過以下命令來查看memcache服務是否啟動成功:
wmic process get description, executablepath | findstr memcached.exe
可以將memcached.exe的路徑放入到系統環境變數中,方便使用。
查看memcache運行狀態:
在命令窗口輸入:
telnet 127.0.0.1 11211
鏈接到memcache上,輸入stats就可以查看到當前memcache的狀態了;
1.下載memcache源碼
http://www.memcached.org/
2.解壓並進入目錄
./configure --prefix=/usr/local/memcache
make
make test
sudo make install
3.啟動memcache
memcache -d start -u root
驗證memcache是否正確安裝並啟動
netstat -tap | grep memcached
4.安裝memcache擴展庫
下載memcache擴展
進入到memcache擴展文件
./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config
make
make install
修改php.ini文件 增加
extension=memcache.so
安裝memcached擴展庫
下載memcached擴展
memcached擴展需要libMemcached庫的支持,所有在安裝memcached擴展庫之前要確認系統已經安裝了libmemcached
安裝libmemcached
./configure --prefix=/usr/local/memcache
make
make install
libmemcached安裝完成後,就可以安裝memcached擴展庫
./configure --with-libmemcached-dir=/usr/local/memcached/ --with-php-config=/usr/local/php/bin/php-config
make
make install
同樣修改php.ini配置文件,增加
extension=memcached.so
Ⅳ 怎麼用命令查看tomcat在memcached中的緩存
一、存儲命令
存儲命令的格式:
1
2
<command name> <key> <flags> <exptime> <bytes>
<data block>
參數說明如下:
<command name>
set/add/replace
<key>
查找關鍵字
<flags>
客戶機使用它存儲關於鍵值對的額外信息
<exptime>
該數據的存活時間,0表示永遠
<bytes>
存儲位元組數
<data block>
存儲的數據塊(可直接理解為key-value結構中的value)
1、添加
(1)、無論如何都存儲的set
這個set的命令在memcached中的使用頻率極高。set命令不但可以簡單添加,如果set的key已經存在,該命令可以更新該key所對應的原來的數據,也就是實現更新的作用。
可以通過「get 鍵名」的方式查看添加進去的記錄:
如你所知,我們也可以通過delete命令刪除掉,然後重新添加。
(2)、只有數據不存在時進行添加的add
(3)、只有數據存在時進行替換的replace
2、刪除
可以看到,刪除已存在的鍵值和不存在的記錄可以返回不同的結果。
二、讀取命令
1、get
get命令的key可以表示一個或者多個鍵,鍵之間以空格隔開
2、gets
可以看到,gets命令比普通的get命令多返回了一個數字(上圖中為13)。這個數字可以檢查數據是否發生改變。當key對應的數據改變時,這個多返回的數字也會改變。
3、cas
cas即checked and set的意思,只有當最後一個參數和gets所獲取的參數匹配時才能存儲,否則返回「EXISTS」。
三、狀態命令
1、stats
2、stats items
執行stats items,可以看到STAT items行,如果memcached存儲內容很多,那麼這里也會列出很多的STAT items行。
3、stats cachemp slab_id limit_num
我們執行stats cachemp 1 0 命令效果如下:
這里slab_id為1,是由2中的stats items返回的結果(STAT
items後面的數字)決定的;limit_num看起來好像是返回多少條記錄,猜的一點不錯,
不過0表示顯示出所有記錄,而n(n>0)就表示顯示n條記錄,如果n超過該slab下的所有記錄,則結果和0返回的結果一致。
通過stats items、stats cachemp slab_id limit_num配合get命令可以遍歷memcached的記錄。
4、其他stats命令
如stats slabs,stats sizes,stats reset等等使用也比較常見。
四、其他常見命令
1、append
在現有的緩存數據後添加緩存數據,如現有緩存的key不存在伺服器響應為NOT_STORED。
2、prepend
和append非常類似,但它的作用是在現有的緩存數據前添加緩存數據。
3、flush_all
該命令有一個可選的數字參數。它總是執行成功,伺服器會發送 「OK\r\n」
回應。它的效果是使已經存在的項目立即失效(預設),或在指定的時間後。此後執行取回命令,將不會有任何內容返回(除非重新存儲同樣的鍵名)。
flush_all
實際上沒有立即釋放項目所佔用的內存,而是在隨後陸續有新的項目被儲存時執行(這是由memcached的懶惰檢測和刪除機制決定的)。
flush_all 效果是它導致所有更新時間早於 flush_all 所設定時間的項目,在被執行取回命令時命令被忽略。
4、其他命令
memcached還有很多命令,比如對於存儲為數字型的可以通過incr/decr命令進行增減操作等等,這里只列出開發和運維中經常使用的命令,其他的不再一一舉例說明。
補充一則:簡單認識.net framework中的幾種緩存
web站點中緩存的重要性毋庸置疑。我想很多asp.net開發人員在開發web應用系統的時候優先考慮使用的緩存並不是第三方緩存解決方案(比如
分布式緩存memcached、redis等等),而應該是.net
framework已經提供的多種緩存解決方案。下面結合自己的開發經驗談談對.net framework中緩存的認識。
1、System.Web.Caching.Cache
估計大部分做過asp.net開發的人都用過這個命名空間下的緩存,我們可以直接使用HttpContext.Current.Cache實例而不
用實例化。當然這個命名空間下的Cache類是允許您實例化的,需要定製自己的緩存系統的當然可以完全自己控制如何初始化這個類。我在園子里看到過有很多
文章介紹Cache的CRUD輔助類庫大多數都是針對System.Web.Caching.Cache。
需要說明的是,我們還可以通過該命名空間下的HttpRuntime.Cache實現web、控制台、winform等不同表現形式下的緩存,而且
完全無需自己實例化。HttpRuntime.Cache是之前個人開發中使用比較多的一個類,現在比較偏愛.net
framework4.0中的增強型的緩存類MemoryCache。
2、Output Cache
眾所周知,輸出緩存主要分頁面輸出緩存和頁面部分緩存。說白了,就是緩存整個頁面的html或者部分html,本來沒什麼值得討論的,但是最近看到的這篇博客才恍然發現,想不到使用它還真是大有講究,我以前怎麼就沒有發現這個問題呢?看來發現問題和解決問題的能力同樣重要,有時候前者甚至更重要啊。
3、System.Runtime.Caching
現在個人開發中使用最多的類MemoryCache出自這個命名空間,使用前需要引用using
System.Runtime.Caching。MemoryCache繼承自ObjectCache, IEnumerable,
IDisposable,其中ObjectCache是個抽象類。用過MemoryCache的人都知道,這個MemoryCache有一個屬性叫
Default,通常可以像下面這樣使用:
private static ObjectCache memCache = MemoryCache.Default;
當然我們也完全可以通過public MemoryCache(string name, NameValueCollection config = null)構造函數初始化緩存對象。
接著我們可以在web.config文件中配置每個MemoryCache實例運行的內存使用配額方案和配額檢查周期,下面示例參考MSDN:
<system.runtime.caching>
<memoryCache>
<namedCaches>
<add name="Default" cacheMemoryLimitMegabytes="10" pollingInterval="00:02:00"/>
</namedCaches>
</memoryCache>
</system.runtime.caching>
這些配置意義在於可以明確指定每個MemoryCache實例運行的內存使用配額方案和配額檢查周期。比如我們可以通過配置來按需更改
MemoryCache.Default實例的內存配額(不知道緩存可用最大內存是多少,可能還是傳說中的800M左右)。緩存過期策略與其它的緩存框架
大同小異,與System.Web.Caching.Cache的不同只是名稱不叫CacheDependency,而叫ChangeMonitor,並且提供了基於文件和目錄的緩存依賴策略。關於緩存過期策略也比較有探討的必要,不過個人開發中比較偏重於數據緩存和替換,目前還沒有接觸和使用過比較完美的過期策略解決方案。
Ⅳ 怎麼查看memcached埠號
查看memcached埠號步驟如下:
1、telnet ip 埠號連上MC;
3、應該重點關注的變數:
使用memcache應該主要關注如下變數,
cmd_get get請求總次數
get_hits get請求命中總次數
get_missesget請求失敗總次數
這三個量可以算出MC的命中率get_hits / cmd_get 或者 get_hits / (get_hits+get_misses) ,這個是使用MC服務最重要的一個量,命中率越高越好。