Memcached詳解分析

2022-11-29 07:57:02 字數 4393 閱讀 6786

memcached技術

介紹:memcached是一種快取技術, 他可以把你的資料放入記憶體,從而通過記憶體訪問提速,因為記憶體最快的, memcached技術的主要目的提速,

在memachec 中維護了一張大的hashtable表 ,該表是在記憶體,表的結構是

key value

字串 (字串,數值,陣列,物件,布林,二進位制資料,null)

原理說明:

◆ 安裝並使用memcached

安裝步驟

(1) **memcached軟體

(2) 安裝

進入cmd ,切換到 檔案所在目錄

–d install

(3) 啟動memcached

第一種,可以到服務點選啟動

第二種, 命令列

–m 200mb –d start 【以deamon方式啟動,預設64m】

如果你在啟動時,win7啟動不成功, 則可以使用如下方法

–p 埠號

啟動方法不要關閉控制台.

埠號的範圍 : 0-65535 , 因為埠號是用兩個位元組來表示

有名埠: 0-1024 已經用程式使用 , apache 80 , mysql 3306 , ftp 21 , ssh 22

oracle: 1521, stmp: 25

使用netstat –an 如果看到 11211埠在監聽,說明啟動ok

netstat –anb 是哪個程式監聽, 這個指令還可以看到有哪些使用者連線到我們的伺服器.

如果沒有安裝好,原因可能

1. 如果你是win7, win7對安全性高,所有,必須以adminstartor 身份來安裝.

你切換成adminstrator , 去安裝,在啟動

2. 你的 目錄有中文,或特殊字元, 保證目錄沒有中文和特殊字元.

(4) 準備研究如果對memcached進行curd操作.

看看telnet如何操作 (curd)

1. 登入到telnet連線到 memcached服務

telnet 127.0.0.1 11211

如果你們不能使用telnet 是因為系統不存在 , 就可以到其它機器上拷貝 放在 c:\windows\system32 即可

2. 增加

基本語法是:

add key名 0 存放時間(秒) 資料大小(字元)

舉例:add key1 0 30 5

3. 如何獲取

基本語法是:

get key值

get key1

4. 修改

set key名 0 存放時間資料大小.

舉例:set key1 0 40 5

如果key1不存在,則相當於增加新,如果存在,則相當有替換

replace key名存放時間資料大小

replace key1 0 40 5

如果key1不存在,則失敗,這個指令要求key必須存在.

5. 刪除

基本語法是

delete key名

比如delete key1

flush_all 可以統一把資料清空.

這裡主要大家可以去計算出命中率 cmd_hits/cmd_get . 越高越好.

◆ 如何使用php程式操作我們的memcached服務 curd.

步驟,準備工作.

(1) 把 php_ 檔案拷貝 php的ext 下

不同版本的php 所使用的 php_ 的版本不一樣

(2) 修改檔案,載入 php_ (該檔案就是封裝了一堆函式)

;載入php_ 檔案

extension=php_

(3) 重新啟動apache

(4) 我們寫程式來完成curd操作.

細節: 在我們新增資料的時候,如果

bool memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )

如果報 expire 設為0 表示,永不過期.(只要memcache不重新啟動,就永遠在mem中)

exprie 直接給的是秒數,則最大 30*3600*24

如果你希望保持時間超過30 time()+天數*3600*24 即可

最後**:

<?php

//建立乙個mem物件例項

$mem=new memcache;

if(!$mem->connect("127.0.0.1",11211))

//增加

//1.增加乙個字串

/* if($mem->set('key1',"beijing",memcache_compressed,60))*/

//2.新增數值

/* if($mem->set('key1',100,memcache_compressed,60))*/

//3.新增陣列

//在新增陣列是,根據需要. 希望序列號放入 ,

//serialize<=>unserialize, 如果根據需要,也可以json_encode <=> json_decode

$arr=array("bj",'tj');

if($mem->set('key1',$arr,memcache_compressed,time()+31*3600*24))

//4.新增物件

/* class dog

}$dog1=new dog('小狗',50);

if($mem->set('key1',$dog1,memcache_compressed,60))*/

//5.新增null 布林值

/* if($mem->set('key1',false,memcache_compressed,60))*/

//6. 資源型別放入.

/* $con=mysql_connect("127.0.0.1","root","root");

if(!$con)

var_dump($con);

echo "

"; if($mem->set('key1',$con,memcache_compressed,60))*/

//查詢

$val=$mem->get('key1');

var_dump($val);

//修改

//可以使用replace

if($mem->replace("key11",'hello',memcache_compressed,60))else

//刪除

echo "

"; if($mem->delete('key14'))else

<?php

//這個檔案去操作memcached服務

//建立乙個mem物件例項

$mem=new memcache;

if(!$mem->connect("127.0.0.1",11211))

//在另外檔案中取出物件時,有個注意的地方,對應php5.2這個版本會提示錯誤,

//對php5.3這個版本會提示 incomplete 資訊, 解決方法是宣告類定義即可

class dog

}$dog=$mem->get('key1');

var_dump($dog);

說明serilize 和 json_encode用法:

//什麼時候使用serilize 什麼時候使用json_encode [ajax配合]

練習: 請大家使用php 程式 完成對memcahce增刪改查

20min

◆ 如何使用php原始碼來操作memcached服務

如果管理員不讓我們去載入 檔案,我們可以直接通過原始碼操作.

關閉擴充套件.

**<?php

require_once '';

$mc = new memcached(array(

servers' => array('127.0.0.1:11211'), //連線的memcacheip和埠

debug' => false, //是否debug

compress_threshold' => 10240, /*最大壓縮*/

persistant' => true)); /*是否是持久連線*/

$mc->set('key1', array('some', 'array'));

// $mc->replace('key', 'some random string');

$val = $mc->get('key1');

var_dump($val);

//修改

$mc->replace('key1', "北京");

$val = $mc->get('key1');

var_dump($val);

//刪除

$mc->delete('key1');

$val = $mc->get('key1');

SWOT分析詳解

swot分析詳解地產策劃知識 swot分別代表 strengths 優勢 weaknesses 劣勢 opportunities 機會 threats 威脅 swot分析通過對優勢 劣勢 機會和威脅的加以綜合評估與分析得出結論,然後再調整企業資源及企業策略,來達成企業的目標。swot分析已逐漸被許多...

SWOT分析模型詳解

出自 mba智庫百科 swot分析模型 swot analysis swot分析法 也稱tows分析法 道斯矩陣 即態勢分析法,20世紀80年代初由美國舊金山大學的管理學教授韋里克提出,經常被用於企業戰略制定 競爭對手分析等場合。swot分析模型簡介 在現在的戰略規劃報告裡,swot分析應該算是乙個...

財務分析指標體系詳解

目錄一 概述 2 二 企業資產 負債和所有者權益的構成分析 6 三 企業資金結構分析 8 四 企業經營協調性分析 11 五 企業償債能力分析 13 六 企業利潤及利潤表分析 18 七 企業盈利能力分析 20 八 企業經營管理能力分析 25 九 企業發展能力分析 29 十 投資專案經濟可行性分析 33...