很久沒用過memcached,覺得有些生疏了,現在做一次筆記,回憶一下,也為了以後更加友善的了解.
關于memcached的曆史之類的,就不說了,不熟,也沒怎麼看過,主要就是說memcached的原理以及方式吧.筆記比較雜亂.
memcached其實是類似于軟體的一種,它是用來為其他軟體或者服務提供一種高性能來存在的.memcache是一種高性能的分布式緩存伺服器,一般是為了通過緩存資料庫查詢的結果,減少通路的次數來提高Web的通路速度的.
php_memcached 是 php 為 Memcached 提供的 PECL 擴充。由于 Memcached 簡單的協定規範,是以,當 Memcached推出後,就有了 PHP 的接口規範和相關擴充。
memcached 使用了同樣的“Key=>Value”方式組織資料,但是它和共享記憶體等其他等本地緩存有非常大 的差別。Memcached 是分布式的,也就是說它不是本地的。它基于網絡連接配接(當然它也可以使用 localhost)方式完 成服務,本身它是一個獨立于應用的程式或守護程序(Daemon 方式)。
memcached 使用 libevent 庫實作網絡連接配接服務,理論上可以處理無限多的連接配接,但是它和 Apache 不同,它更 多的時候是面向穩定的持續連接配接的,是以它實際的并發能力是有限制的。在保守情況下 memcached 的最大同時連 接數為 200,這和 Linux 線程能力有關系,這個數值是可以調整的。
下面說說memcache指令行簡單的使用吧.
memcache啟動參數
-p TCP端口号,預設11211
-UUDP監聽端口,預設11211,0時關閉
-l綁定位址,預設所有允許,如果設定了,
-d以daemon方式運作
-u綁定使用指定使用者運作的程序
-m允許使用記憶體,機關M(預設64)
-P将PID寫入檔案
連接配接:
telnet 127.0.0.1 11211
指令:
set向記憶體中增加鍵值對,如果存在,則替換
add向記憶體中增加鍵值對
replace如果值不存在,傳回NOT_STORED,否則替換值
get擷取值
delete删除
flush_all清空所有緩存
stats解釋:
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的總數
很早之前想的一個問題,如果緩存還存在,但是資料已經更新,那麼使用者不就看不到最新的資料了麼?後來一大神給我解決,memcache可以存一個臨時的,不是永久的.或者不經常改動的資料,還有統計線上人數,或者單點登入SSO等.都可以用到memcache,那會兒很傻的以為儲存整個資料庫的資料.
希望這些也可以給大家個思路吧.至于其他的,還沒有接觸過很多.暫時确實對memcache的深度應用不足.
本文轉自 3147972 51CTO部落格,原文連結:http://blog.51cto.com/a3147972/1401401,如需轉載請自行聯系原作者