Memcached 是一個高性能的分佈式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提供動態、數據庫驅動網站的速度。Memcached基於一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,並通過memcached協議與守護進程通信。
memcached是一套分佈式的快取系統,當初是Danga Interactive爲了LiveJournal所發展的,但目前被許多軟件(如MediaWiki)所使用。這是一套開放源代碼軟件,以BSD license授權釋出。
memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 爲首開發的一款軟件。現在已成爲mixi、hatena、Facebook、Vox、LiveJournal等衆多服務中提高Web應用擴展性的重要因素。許多Web應用都將數據保存到RDBMS中,應用服務器從中讀取數據並在瀏覽器中顯示。但隨着數據量的增大、訪問的集中,就會出現RDBMS的負擔加重、數據庫響應惡化、網站顯示延遲等重大影響。
這時就該memcached大顯身手了。memcached是高性能的分佈式內存緩存服務器。一般的使用目的是,通過緩存數據庫查詢結果,減少數據庫訪問次數,以提高動態Web應用的速度、提高可擴展性。
Memcached 的守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,並通過memcached協議與守護進程通信。但是它並不提供冗餘(例如,複製其hashmap條目);當某個服務器S停止運行或崩潰了,所有存放在S上的鍵/值對都將丟失。
以下是 memcached 在 Windows 系統下的 x86/x64 版本的安裝方法。
命令提示符下運行
安裝:
memcached -d install
memcached -d start
memcached -m 256m -d start
net start "Memcached Server"
卸載:
memcached -d stop
memcached -d remove
sc delete "Memcached Server"
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 顯示幫助
add name[key] 0[標誌位] 60[time] 5[放入多大數據]
set name 0 60 5有的話更新
replace替換存在的key
append
prepend追加修改
incr key 增加數
decr key 減少數
delete key
flush_all全部清空
stats命令使用次數
memcached的基本概念
memcached是一個高效的,支持分佈式的內存對象緩存系統,可以支持把各種數據到其管理的內存中[數組,對象,基本數據類型]
使用memcached的好處:
訪問速度:數據庫<文件<內存
安裝步驟:
1.下載memcached軟件
2.將memcached軟件拷貝到某個目錄,最好放在開發環境目錄下,便於管理
3.安裝 memcached -d install
4.卸載使用 memcached -d uninstall
5.啓動memcached服務
(1)直接通過界面啓動該服務
(2)在控制檯啓動memcached -d start
6.查看memcached服務是否啓動成功。默認端口11211
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,最大好像是2G
-M 內存耗盡時返回錯誤,而不是刪除項
-c 最大同時連接數,默認是1024
-f 塊大小增長因子,默認是1.25
-n 最小分配空間,key+value+flags默認是48
-h顯示幫助
特別說明:如果你的網站,需要memcached的內存大於64M應當這樣啓動
memcached -m 256m -d start
如果大於256m,就基於LRU(Least Recently Used)的算法自動刪除不使用的緩存
如果你希望換一個端口:memcached -d -m30 -l 127.0.0.1 -p 9000 -d start[linux使用]
80 apche//IIS
21 ftp
23 telnet
3306 mysql
1521 oracle
1433 sql server
8080 tomcat
使用方法(CRUD)
telnet -------->memecached緩存系統
程序(1.通過memcache擴展。2.通過memcached擴展3.通過socket訪問) -------->memcached緩存系統
1.連接到memcached :telnet 127.0.0.1 11211
2.add name 0 60 5 [說明 add是指令名 name是key的名字(是以key/value形式存儲) 0是標誌 60表示數據存放60秒 5表示放入多大數據]
3.get name[獲取name的值]
4.set name 0 60 5[如果name存在則更新,不存在則添加]
5.刪除: delete key
6.replace替換,如果key不存在則會報錯
7.append 追加
8.prepend 在前面添加
eg:add name 0 60 5
append name 0 60 3
prepend name 0 60 5
9.incr增加:incr key 2[針對數字]
10.decr減少:decr key 3
11.flush_all全部清空
12.flush_all 900 :有效期900秒之內的數據清空
13.stats:顯示命令操作次數
memcached的基本命令(當memcached啓動後,用於對memcached的管理數據和本身運行狀態相關的命令)
linux下設置防火牆
iptables -a input -p 協議 -s 可以訪問ip -dport 端口 -j ACCEPT
小結
小網站,pv值不大,不需要使用
變化頻繁,查詢頻繁,但是不一定寫入數據庫,適合使用
變化頻繁,但數據需要入庫,且數據很重要,不適合使用
變化不頻繁,查詢頻繁,不管入不入庫,都比較適合使用