国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Memcached

2019-11-15 02:12:29
字體:
來源:轉載
供稿:網友
Memcached

Memcached是一個高性能的分布式內存對象緩存系統,用于動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。

Memcached基于一個存儲鍵/值對的hashmap。其守護進程(daemon)是用C寫的,但是客戶端可以用任何語言來編寫,并通過memcached協議與守護進程通信。

存儲方式:

為了提高性能,memcached中保存的數據都存儲在memcached內置的內存存儲空間中。由于數據僅存在于內存中,因此重啟memcached、重啟操作系統會導致全部數據消失。另外,內容容量達到指定值之后,就基于LRU(LeastRecentlyUsed)算法自動刪除不使用的緩存。memcached本身是為緩存而設計的服務器,因此并沒有過多考慮數據的永久性問題。

使用技巧:

許多語言都實現了連接memcached的客戶端,其中以Perl、php為主。

一、這里介紹windows環境的安裝。

1、下載memcache的windows穩定版,解壓放某個盤下面,比如在c:/memcached

2、在cmd下輸入'c:/memcached/memcached.exe-dinstall'安裝

3、再輸入:'c:/memcached/memcached.exe-dstart'啟動。

以后memcached將作為windows的一個服務每次開機時自動啟動。這樣服務器端已經安裝完畢了。

4、很簡單。不過還沒完,你只是安裝了一個memcachedcachingserver,還沒有和php建立關聯。所以在php程序里還不能運用。

由于我的php版本是5.2.17的,下載的php_memcache.dll也要是對應的。如果你的php是5.3+的,可以在這里下載

php_memcache-cvs-20090703-5.3-nts-VC6-x86.zip

安裝與平時添加擴展完全一樣,把dll文件拷到你的php目錄的ext目錄下,然后,

在php.ini中添加extension=php_memcache.dll,重啟服務器,在phpinfo里面就應該可以看到配置信息。

二、CentOS下的安裝

安裝 yum-yinstallmemcached

設置為開機啟動 chkconfig--level2345memcachedon

啟動和停止 /etc/init.d/memcachedstart|stop

補充:如果安裝缺少其他支持,可以:

yumgroupinstall"DevelopmentTools"

常用操作

Memcache::add添加一個值,如果已經存在,則返回false

Memcache::addServer添加一個可供使用的服務器地址

Memcache::close關閉一個Memcache對象

Memcache::connect創建一個Memcache對象

Memcache::debug控制調試功能

Memcache::decrement對保存的某個key中的值進行減法操作

Memcache::delete刪除一個key值

Memcache::flush清除所有緩存的數據

Memcache::get獲取一個key值

Memcache::getExtendedStats獲取進程池中所有進程的運行系統統計

Memcache::getServerStatus獲取運行服務器的參數

Memcache::getStats返回服務器的一些運行統計信息

Memcache::getVersion返回運行的Memcache的版本信息

Memcache::increment對保存的某個key中的值進行加法操作

Memcache::pconnect創建一個Memcache的持久連接對象

Memcache::replaceR對一個已有的key進行覆寫操作

Memcache::set添加一個值,如果已經存在,則覆寫

Memcache::setComPRessThreshold對大于某一大小的數據進行壓縮

Memcache::setServerParams在運行時修改服務器的參數

<?php  //連接Memcache  $mem = new Memcache;  $mem->connect("localhost", 11211);  //保存數據  $mem->set('key1', 'This is first value', 0, 60);  $val = $mem->get('key1');  echo "Get key1 value: " . $val ."<br>";  //替換數據  $mem->replace('key1', 'This is replace value', 0, 60);  $val = $mem->get('key1');  echo "Get key1 value: " . $val . "<br>";  //保存數組數據  $arr = array('aaa', 'bbb', 'ccc', 'ddd');  $mem->set('key2', $arr, 0, 60);  $val2 = $mem->get('key2');  echo "Get key2 value: ";  print_r($val2);  echo "<br>";  //刪除數據  $mem->delete('key1');  $val = $mem->get('key1');  echo "Get key1 value: " . $val . "<br>";  //清除所有數據  $mem->flush();  $val2 = $mem->get('key2');  echo "Get key2 value: ";  print_r($val2);  echo "<br>";  //關閉連接  $mem->close();  ?>  

memcached的工作原理:

首先memcached是以守護程序方式運行于一個或多個服務器中,隨時接受客戶端的連接操作,客戶端可以由各種語言編寫,目前已知的客戶端API包括Perl/PHP/Python/Ruby/java/C#/C等等。

PHP等客戶端在與memcached服務建立連接之后,接下來的事情就是存取對象了,每個被存取的對象都有一個唯一的標識符key,存取操作均通過這個key進行,保存到memcached中的對象實際上是放置內存中的,并不是保存在cache文件中的,這也是為什么memcached能夠如此高效快速的原因。注意,這些對象并不是持久的,服務停止之后,里邊的數據就會丟失。

memcachedb:

MemcacheDB是一個分布式、key-value形式的持久存儲系統。它不是一個緩存組件,而是一個基于對象存取的、可靠的、快速的持久存儲引擎。協議跟memcache一致(不完整),所以很多memcached客戶端都可以跟它連接。MemcacheDB采用BerkeleyDB作為持久存儲組件,故很多BerkeleyDB的特性的他都支持。

我們是站在巨人的肩膀上的。MemcacheDB的前端緩存是Memcached

前端:memcached的網絡層

后端:BerkeleyDB存儲

memcached和smarty的關系及區別是什么?。?/strong>

Memcache是一個高性能的分布式的內存對象緩存系統,把緩存記錄到內存的系統.。

例如,從數據庫中獲取列表顯示,但并不想每次都讀取數據庫,這樣就需要用到緩存,而memcache就是其中的一種,它是把記錄保存在內存中使用

例如要重db獲取數據顯示出來,db->memcache->client

首先先判斷memcache有沒有數據,如果沒有則讀取DB,然后把db獲取到的記錄保存在memcache

下次再需要讀取記錄時,就可以直接在memcache中讀取,這樣就可以分擔數據庫的負擔,而且速度快很多。

Smarty是一個使用PHP寫出來的模板引擎,目的就是要使PHP程序員同前端人員分離,使程序員改變程序的邏輯內容不會影響到前端人員的頁面設計。

smarty是運行在MVC結構的view中。

例如php我們要顯示一個變量,需要這樣寫echo$a;

而用smarty則需要這樣寫{$a},經過編譯后,會自動顯示出echo$a;,是一樣的,smarty中的緩存,php要運行后,才可以輸出到瀏覽器,php運行生成html輸出是需要運算的,而smarty則會把之前運行過的php生成后的html保存起來,如果再調用這個php則會直接輸出之前的html.起到緩存作用。

memcache和smarty沒有關系,兩者作用是不一樣的,沒有聯系的。


上一篇:GD庫使用小結---2

下一篇:Smarty

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜昌市| 江源县| 嘉兴市| 沂水县| 清河县| 广南县| 昭苏县| 卢龙县| 石家庄市| 呈贡县| 河源市| 峡江县| 兖州市| 宁国市| 高台县| 大石桥市| 二手房| 株洲市| 丹寨县| 屯门区| 石河子市| 安义县| 沙雅县| 西藏| 青冈县| 夏津县| 蚌埠市| 兴仁县| 奉新县| 肇源县| 论坛| 龙海市| 淅川县| 闽清县| 新晃| 柳河县| 峡江县| 民权县| 内黄县| 西吉县| 阳信县|