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

首頁(yè) > 網(wǎng)站 > 建站經(jīng)驗(yàn) > 正文

php5.3安裝libmemcached 擴(kuò)展方法與簡(jiǎn)單實(shí)例

2024-04-25 20:36:58
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

libmemcached 是一個(gè) memcached 的庫(kù),客戶(hù)端庫(kù),C 和 C++ 語(yǔ)言實(shí)現(xiàn)的客戶(hù)端庫(kù),具有低內(nèi)存占用率、線程安全、并提供對(duì)memcached功能的全面支持,它還采用 多種命令行工具:memcat,memflush,memrm, memstat,并memslap(負(fù)載代),程序庫(kù)一直在設(shè)計(jì),讓不同的散列方法對(duì)密鑰,分割的鑰匙,并使用統(tǒng)一的散列分配.

基于libmemcached的php memcache client有很多優(yōu)勢(shì).

•hash一致性存儲(chǔ)

•multi get/set

•自動(dòng)把key hash 為int,避開(kāi)了memcache key字符串默認(rèn)小于255Byte的限制,好久沒(méi)有配置服務(wù)器,一直以為libmemcached的php memcached 已經(jīng)納入基本安裝包了,到頭來(lái)還需要自己編譯,整個(gè)安裝過(guò)程很多暗坑,嘗試了幾次才成功.

安裝分兩步:

•安裝libmemcached,目標(biāo)是so和header文件

•安裝memcachedphp extensions

libmemcaced 分為兩大版本0.x和1.x,1.x的版本從2011-09-28開(kāi)始,編譯很麻煩,需要gcc4.0以上的專(zhuān)門(mén)配置,compile無(wú)比慢,0.x版本就簡(jiǎn)單很多,最高版本是0.53,所以選擇安裝0.53.

極品總是成對(duì)出現(xiàn),php的memcahed也從2.1.0開(kāi)始,要求libmemcached 必須是1.0.x版本,libmemcaced我用的0.53,那php-memcahed 就選擇2.0.0,開(kāi)源軟件的版本維護(hù)是一團(tuán)爛帳.

安裝libmemcached,代碼如下:

wget https://launchpad.net/libmemcached/1.0/0.53/+download/libmemcached-0.53.tar.gz

tar xvfz libmemcached-0.53.tar.gz

cd libmemcached-0.53

./configure --prefix=/opt/libmemcached

make && make install

安裝php擴(kuò)展,代碼如下:

wget http://pecl.php.net/get/memcached-2.0.0.tgz
tar zvxf memcached-2.0.0.tgz

cd memcached-2.0.0/

./configure --enable-memcached --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/opt/libmemcached/

make && make install

make install 是把memcached.so 安裝到 ${php install dir}/extensions/no-debug-non-zts-20090626/,這個(gè)目錄隨著php的版本不同而不同.

最后一步,修改php.ini,加上 extension=memcached.so,與我們己安裝好了來(lái)看看簡(jiǎn)單的實(shí)例,代碼如下:

#include <iostream>

#include <string>

#include <libmemcached/memcached.h>

using namespace std;

int main(int argc,char *argv[])

{

//connect server

memcached_st *memc;

memcached_return rc;

memcached_server_st *server;

time_t expiration;

uint32_t flags;

memc = memcached_create(NULL);

server = memcached_server_list_append(NULL,"localhost",11211,&rc);

rc=memcached_server_push(memc,server);

memcached_server_list_free(server);

string key = "key";

string value = "value";

size_t value_length = value.length();

size_t key_length = key.length();

//Save data
rc=memcached_set(memc,key.c_str(),key.length(),value.c_str(),value.length(),expiration,flags);

29 if(rc==MEMCACHED_SUCCESS)

30 {

31 cout<<"Save data:"<<value<<" sucessful!"<<endl;

32 }

33

34 //Get data

35 char* result = memcached_get(memc,key.c_str(),key_length,&value_length,&flags,&rc);

if(rc == MEMCACHED_SUCCESS)

{

cout<<"Get value:"<<result<<" sucessful!"<<endl;

}

//Delete data

rc=memcached_delete(memc,key.c_str(),key_length,expiration);

if(rc==MEMCACHED_SUCCESS)

{

cout<<"Delete key:"<<key<<" sucessful!"<<endl;

} //開(kāi)源代碼phpfensi.com

//free

memcached_free(memc);

return 0;

}

編譯:g++ -o testmemcached testmemcached.cpp -lmemcached

運(yùn)行:./testmemcached

結(jié)果:Save data:value sucessful!Get value:value sucessful!Delete key:key sucessful!

注意事項(xiàng):

需要注意的是,libmemcached 不是 libmemcache,它們是兩個(gè)不同的客戶(hù)端庫(kù),前者現(xiàn)在的開(kāi)發(fā)比較活,后者已經(jīng)有很長(zhǎng)時(shí)間沒(méi)有更新了.

memcached 是一個(gè)高性能、分布式的內(nèi)存對(duì)象緩存系統(tǒng),通過(guò)內(nèi)存的數(shù)據(jù)緩存來(lái)降低對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),從而提高動(dòng)態(tài)內(nèi)容應(yīng)用網(wǎng)站的速度,memcached 官方開(kāi)發(fā)釋放出來(lái)的,只是應(yīng)用的服務(wù)器端程序,它發(fā)布了服務(wù)器端的連接讀寫(xiě)協(xié)議,客戶(hù)端的實(shí)現(xiàn),則根據(jù)動(dòng)態(tài)內(nèi)容應(yīng)用網(wǎng)站使用的動(dòng)態(tài)腳本的不同,而有多種,具體列表,可查看官方網(wǎng)站.

 

 

 

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东乌珠穆沁旗| 高密市| 公主岭市| 徐州市| 兴和县| 陈巴尔虎旗| 京山县| 盐源县| 雷波县| 城固县| 鄱阳县| 晋城| 太仓市| 德惠市| 宜川县| 广水市| 岱山县| 潜山县| 绵竹市| 勃利县| 秀山| 彭阳县| 贞丰县| 平遥县| 安远县| 锦屏县| 九寨沟县| 开鲁县| 台南县| 沛县| 共和县| 大荔县| 祁阳县| 南平市| 永宁县| 清河县| 富川| 承德市| 阿克苏市| 仪征市| 平顺县|