Memcached 基礎筆記

2021-09-18 04:01:18 字數 2995 閱讀 7472

memcache 是一套分布式快取記憶體系統,

當應用訪問量特別大的時候,資料庫的訪問量也會特別大。memcache 的出現,可以在運用和資料庫之間增加乙個緩衝層。那麼之前在資料庫中讀取過的資料在第二次讀取的時候,可以直接去訪問 memcache 去讀取這些資料,從而減輕資料庫的壓力。

memcache 相當於只有一張表的資料庫。這張表有二個字段,分別是主鍵 key,和資料 value。key 用來保證我們查詢值得唯一性。

1. 非持久化儲存:對資料儲存要求不高

如果資料丟失也不會對系統造成太大的影響。當系統斷電或者重啟的時候,記憶體會被清空,之前儲存在 memcache 當中的資料也會被清空。所以只能把 memcache 當成快取使用,而不能把它當成真正的資料庫使用。

2. 分布式儲存:不適合單機使用

如果是單機,直接使用資料庫查詢資料。memcache 對於記憶體的消耗很大。

如果使用 memcache,推薦裝在另外一台機器上,單獨作為快取系統。而不是把資料庫和 memcache 裝在一台資料庫上

3. key/value 儲存:格式簡單,不支援 list ,array 資料型別

value 儲存的是資料的整個部分,不能再把 value 中的資料進行拆分。

memcached 是乙個 c/s 架構的快取系統,分為服務端的安裝和客戶端的安裝。

編譯安裝 libevent memcache

如果是編譯安裝可以指定軟體的安裝路徑,安裝過程時間長。

依賴包管理安裝 apt-get、 yum

apt-get install memcached
or

yum install memcached
/usr/bin/memcached -d -l 127.0.0.1 -p 11211 -m 150 -u root
-d:程序守護

-l:ip位址

-p:埠號

-m:分配的記憶體大小

-u:啟動服務的使用者

檢視:ps -ef | grep memcached

安裝 libmemcached

採用編譯安裝的方式

cd libmemcached-1.0.18

./configure --prefix=/usr/lib/libmemcached

meke && make install

為 php 安裝 memcached 拓展
cd memcached-2.2.0

phpize

./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/lib/libmemcached --disable-memcached-sasl

make && make install

vim /etc/php/php7.0/php-fpm/php.ini

//新增

extension = memcached.so

系統類 :addserver, addservers, getstatus, getversion

資料類:add,set,delete, flush, replace, increment,get

高階類:setmulti, deletemulti, get multi, getresultcode, getresultmessage

addserver

public bool memcached::addserver ( string $host , int $port [, int $weight = 0 ] )
hostmemcached服務端主機名。如果主機名無效,相關的資料操作的返回**將被設定為memcached::res_host_lookup_failure。

port

memcached服務端埠號,通常是11211。

weight

此伺服器相對於伺服器池中所有伺服器的權重。此引數用來控**務器在操作時被選種的概率。這個僅用於一致性 分布選項,並且這個值通常是由服務端分配的記憶體來設定的。

set

public bool memcached::set ( string $key , mixed $value [, int $expiration ] )
key用於儲存值的鍵名。

value

儲存的值。

expiration

到期時間,預設為 0。 更多資訊請參見到期時間。

get

public mixed memcached::get ( string $key [, callback $cache_cb [, float &$cas_token ]] )
key要檢索的元素的key。

cache_cb

通讀快取回掉函式或null.

cas_token

檢索的元素的cas標記值。

適用用新聞詳情文章詳情這情況

**首頁的情況,定時指令碼把快取生成好

Memcached 基礎應用

1 解壓縮檔案到c memcached 2 命令列輸入 c memcached memcached.exe d install 3 命令列輸入 c memcached memcached.exe d start 該命令啟動 memcached 預設監聽埠為 11211 通過 memcached.ex...

memcached 學習筆記

鳴謝 菜鳥教程 memcached 是一套高效能的 分布式記憶體物件快取系統。注意,memcache不是資料庫。1.1 特點 a.協議簡單 使用文字協議和二進位制協議,協議簡單,效能高效.b.基於 libevent 的事件處理 libevent 是個程式庫,它將 linux 的 epoll bsd ...

Twitter學習 MemCached基礎篇

twitter大量使用memcached,mq也是基於memcached 協議的,memcached並不是新鮮的東西,但是由於它強大的影響力,有必要深入一下,這篇主要講它的基礎 1.memcached是什麼?memcached 是乙個高效能的分布式記憶體物件快取系統,用於動態web應用以減輕資料庫負...