導航:首頁 > 程序命令 > memcacheset命令行

memcacheset命令行

發布時間:2022-10-22 17:59:11

① memcached的add和set的區別

memcache::add 方法:add方法用於向memcache伺服器添加一個要緩存的數據。memcache::set 方法:set方法用於設置一個指定key的緩存內容,set方法是add方法和replace方法的集合體
set和add方法的不同之處是add方法不允許key值相同,如果第二次add的key相同,則存儲失敗,而set方法允許key相同,如果相同,則替換該key對應的value。

② 怎麼用命令查看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,並且提供了基於文件和目錄的緩存依賴策略。關於緩存過期策略也比較有探討的必要,不過個人開發中比較偏重於數據緩存和替換,目前還沒有接觸和使用過比較完美的過期策略解決方案。

php中使用memcache, set會出現概率性失敗,如何定位

$mem = new Memcache;
$mem->connect('127.0.0.1', 11211) or die ("Could not connect");
$mem->set('key', 'This is a test!', 0, 60);
$val = $mem->get('key');
echo $val;
已經安裝成功

memcache
memcache support enabled
Active persistent connections 0
Version 2.2.5
Revision $Revision: 1.114 $

④ 小白談memcache和memcached的區別

Memcache是什麼?
Memcache是一個自由和開放源代碼、高性能、分配的內存對象緩存系統。用於加速動態web應用程序,減輕資料庫負載。它可以應對任意多個連接,使用非阻塞的網路IO。由於它的工作機制是在內存中開辟一塊空間,然後建立一個Hash表,Memcached自管理這些Hash表。
Memcached是簡單而強大的。它簡單的設計促進迅速部署,易於發展所面臨的問題,解決了很多大型數據緩存。它的API可供最流行的語言。
Memcache官方網站:http://memcached.org/
Memcached又是什麼?
Memcache是該系統的項目名稱,Memcached是該系統的主程序文件(字母d可以理解為daemon),以守護程序方式運行於一個或多個伺服器中,隨時接受客戶端的連接操作,使用共享內存存取數據。
memcache客戶端(php)
PHP有兩個memcache客戶端:php memcache和php memcached。
php memcache獨立用php實現,是老客戶端,從我們實踐中已發現有多個問題,而且功能少,屬性也可設置的少;
http://pecl.php.net/package/memcache
php memcached是基於原生的c的libmemcached的擴展,更加完善,建議替換為php memcached。
http://pecl.php.net/package/memcached
memcached安裝(服務端)
cd /root/lnmp/src/
wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
tar xzf memcached-1.4.15.tar.gz
cd memcached-1.4.15
./configure --prefix=/usr/local/memcached
make && make install

ln -s /usr/local/memcached/bin/memcached /usr/bin/memcached
/bin/cp scripts/memcached.sysv /etc/init.d/memcached
sed -i 's@^USER=.*@USER=root@' /etc/init.d/memcached
sed -i 's@chown@#chown@' /etc/init.d/memcached
sed -i 's@/var/run/memcached/memcached.pid@/var/run/memcached.pid@' /etc/init.d/memcached
sed -i 's@^prog=.*@prog="/usr/local/memcached/bin/memcached"@' /etc/init.d/memcached #前面有軟鏈接,這里可以省略
chmod +x /etc/init.d/memcached
chkconfig --add memcached
chkconfig memcached on
cd ..

啟動memcached:
service memcached start #或者執行下面
memcached -p 11211 -l 127.0.0.1 -d -u root -P /var/run/memcached.pid -m 64M -c 1024

幾個參數的解釋:
-p memcached監聽的TCP埠
-l 監聽的ip地址,127.0.0.1是本機,當然也可以寫上你的伺服器IP,如:10.0.0.10,這是我伺服器的IP地址,如果你需要多個伺服器都能夠讀取這台memcached的緩存數據,那麼就必須設定這個ip
-d 以daemon方式運行,將程序放入後台
-u memcached的運行用戶,我設定的是nobody
-P memcached的pid文件路徑
-m memcached可以使用的最大內存數量
-c memcached同時可以接受的最大的連接數
如果你希望以socket方式來訪問memcached,那麼在啟動的時候就必須去掉 -l和-p參數,並加上-s參數:
-s memcached的socket文件路徑
php中memcache擴展組件的安裝:
tar xzf memcache-2.2.7.tgz
cd memcache-2.2.7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
cd ../

按照我的環境,編譯出來的memcache.so自動生成在/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ 目錄下,如果你的環境不一樣,你得根據自己情況修改你的php.ini了。
接著要做的工作就是讓php載入這個擴展,編輯你的php.ini,在適當位置(通常是最後,也可以是獨立的一個ini文件)加入如下行:
extension=memcache.so

然後重啟php或者apache,運行一個phpinfo()來確認一下,正常的話你應該可以看到這個了:memcache
php-memcache的簡單使用舉例:
<?php
$memcache = new Memcache;
$memcache->connect('127.0.0.1','11211');
$memcache->setCompressThreshold(20000, 0.2); // 設置壓縮
echo $memcache->getVersion(); // 輸出memcached版本

$test = array(1,2,3,4,5,'abcde'); //生成一個數組

if($memcache->get('test')){
print_r($memcache->get('test')); //獲取數據
echo "\n";
echo 'cached';
echo "\n";
}else{
$memcache->set('test',$test,0,30); //寫入數據
echo 'no cache';
echo "\n";
}
?>

php中memcached擴展組件的安裝(LNMP一鍵安裝包):
最新版ibmemcached-1.0.17.tar.gz可能會報錯
error: 『HAVE_MEMCACHED_BINARY』 was not declared in this scope
用libmemcached-1.0.16.tar.gz沒問題
安裝如下:
wget https://launchpad.net/libmemcached/1.0/1.0.16/+download/libmemcached-1.0.16.tar.gz
wget http://pecl.php.net/get/memcached-2.1.0.tgz
tar xzf libmemcached-1.0.16.tar.gz
cd libmemcached-1.0.16
./configure --with-memcached=/usr/local/memcached
make && make install
cd ..

tar xzf memcached-2.1.0.tgz
cd memcached-2.1.0
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

按照我的環境,編譯出來的memcached.so自動生成在 /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ 目錄下,如果你的環境不一樣,你得根據自己情況修改你的php.ini了。
接著要做的工作就是讓php載入這個擴展,編輯你的php.ini,在適當位置(通常是最後,也可以是獨立的一個ini文件)加入如下行:
extension=memcached.so

然後重啟php或者apache,運行一個phpinfo()來確認一下,正常的話你應該可以看到這個了:memcached
總結:
其實很簡單,memcache是php的一個擴展,用於php管理memcached(服務端),php-memcache.dll。
如果安裝了memcached(服務端)不安裝擴展,那麼php無法操控memcached,但是命令行使用起來沒有問題
如果安裝了PHP memcache客戶端(php memcache和php memcached)。但是沒有安裝memcached(服務端)服務,那麼這個就無法使用
只有同時安裝了memcached(服務端)和PHP memcache客戶端擴展才可以提高動態網站性能

⑤ 如何查看Memcached運行狀態

如何通過命令行查看memcache當前運
命令行下查看memcache的運行狀態的命令主要是stats命令,步驟如下:
(1)首先通過telnet命令連接上memcache,命令:telnet 127.0.0.1 11211
(2)直接輸入stats 就可以得到當前memcache的狀態。
對於memcache的狀態各英文的意思做如下解釋:
pid memcache伺服器的進程ID
uptime 伺服器已經運行的秒數
time 伺服器當前的unix時間戳
version memcache版本
pointer_size 當前操作系統的指針大小(32位系統一般是32bit)
rusage_user 進程的累計用戶時間
rusage_system 進程的累計系統時間
curr_items 伺服器當前存儲的items數量
total_items 從伺服器啟動以後存儲的items總數量
bytes 當前伺服器存儲items佔用的位元組數
curr_connections 當前打開著的連接數
total_connections 從伺服器啟動以後曾經打開過的連接數
connection_structures 伺服器分配的連接構造數
cmd_get get命令(獲取)總請求次數
cmd_set set命令(保存)總請求次數
get_hits 總命中次數
get_misses 總未命中次數
evictions 為獲取空閑內存而刪除的items數(分配給memcache的空間用滿後需要刪除舊的items來得到空間分配給新的items)
bytes_read 總讀取位元組數(請求位元組數)
bytes_written 總發送位元組數(結果位元組數)
limit_maxbytes 分配給memcache的內存大小(位元組)
threads 當前線程數

⑥ 如何查看Memcache 運行狀態 stats

何通命令行查看memcache前運
命令行查看memcache運行狀態命令主要stats命令步驟:
(1)首先通telnet命令連接memcache命令:telnet
127.0.0.1
11211
(2)直接輸入stats
前memcache狀態
於memcache狀態各英文意思做解釋:
pid
memcache伺服器進程ID
uptime
伺服器已經運行秒數
time
伺服器前unix間戳
version
memcache版本
pointer_size
前操作系統指針(32位系統般32bit)
rusage_user
進程累計用戶間
rusage_system
進程累計系統間
curr_items
伺服器前存儲items數量
total_items
伺服器啟存儲items總數量
bytes
前伺服器存儲items佔用位元組數
curr_connections
前打著連接數
total_connections
伺服器啟曾經打連接數
connection_structures
伺服器配連接構造數
cmd_get
get命令(獲取)總請求數
cmd_set
set命令(保存)總請求數
get_hits
總命數
get_misses
總未命數
evictions
獲取空閑內存刪除items數(配給memcache空間用滿需要刪除舊items空間配給新items)
bytes_read
總讀取位元組數(請求位元組數)
bytes_written
總發送位元組數(結位元組數)
limit_maxbytes
配給memcache內存(位元組)
threads
前線程數

⑦ 如何查看Memcache 運行狀態 stats

何通命令行查看memcache前運
命令行查看memcache運行狀態命令主要stats命令步驟:
(1)首先通telnet命令連接memcache命令:telnet 127.0.0.1 11211
(2)直接輸入stats 前memcache狀態
於memcache狀態各英文意思做解釋:
pid memcache伺服器進程ID
uptime 伺服器已經運行秒數
time 伺服器前unix間戳
version memcache版本
pointer_size 前操作系統指針(32位系統般32bit)
rusage_user 進程累計用戶間
rusage_system 進程累計系統間
curr_items 伺服器前存儲items數量
total_items 伺服器啟存儲items總數量
bytes 前伺服器存儲items佔用位元組數
curr_connections 前打著連接數
total_connections 伺服器啟曾經打連接數
connection_structures 伺服器配連接構造數
cmd_get get命令(獲取)總請求數
cmd_set set命令(保存)總請求數
get_hits 總命數
get_misses 總未命數
evictions 獲取空閑內存刪除items數(配給memcache空間用滿需要刪除舊items空間配給新items)
bytes_read 總讀取位元組數(請求位元組數)
bytes_written 總發送位元組數(結位元組數)
limit_maxbytes 配給memcache內存(位元組)
threads 前線程數

⑧ 如何查看memcache的狀態

如何通過命令行查看memcache當前運
命令行下查看memcache的運行狀態的命令主要是stats命令,步驟如下:
(1)首先通過telnet命令連接上memcache,命令:telnet 127.0.0.1 11211
(2)直接輸入stats 就可以得到當前memcache的狀態。
對於memcache的狀態各英文的意思做如下解釋:
pid memcache伺服器的進程ID
uptime 伺服器已經運行的秒數
time 伺服器當前的unix時間戳
version memcache版本
pointer_size 當前操作系統的指針大小(32位系統一般是32bit)
rusage_user 進程的累計用戶時間
rusage_system 進程的累計系統時間
curr_items 伺服器當前存儲的items數量
total_items 從伺服器啟動以後存儲的items總數量
bytes 當前伺服器存儲items佔用的位元組數
curr_connections 當前打開著的連接數
total_connections 從伺服器啟動以後曾經打開過的連接數
connection_structures 伺服器分配的連接構造數
cmd_get get命令(獲取)總請求次數
cmd_set set命令(保存)總請求次數

閱讀全文

與memcacheset命令行相關的資料

熱點內容
單片機的功能模塊 瀏覽:771
安卓手機如何錄制視頻長時間 瀏覽:283
安全問題app哪個好 瀏覽:445
壓縮水會變冰嗎 瀏覽:526
小說配音app哪個靠譜 瀏覽:820
編譯iso 瀏覽:944
照片生成pdf格式 瀏覽:194
病歷轉pdf 瀏覽:835
雲伺服器配硬體 瀏覽:978
伺服器10k什麼意思 瀏覽:21
pdfeditor漢化 瀏覽:884
新科學pdf 瀏覽:746
現在還有c語言編譯嗎 瀏覽:675
哪裡買到單片機 瀏覽:480
linux文件打開數量 瀏覽:510
編譯原理中什麼是l屬性文法 瀏覽:372
硬碟加密時出現的問題 瀏覽:61
如何退域命令 瀏覽:108
看書的app哪裡看 瀏覽:291
伺服器怎麼調大 瀏覽:4