導航:首頁 > 編程語言 > phpmemcached使用教程

phpmemcached使用教程

發布時間:2022-11-25 20:25:36

A. thinkphp裡面怎樣配置memcache

1、下載並安裝memcache
(1)window下安裝memcache. 下載memcached.exe
到d:/memcached/memcached.exe.在運行cmd 輸入

d:/memcached/memcached.exe -d install安裝


(2)運行d:/memcached/memcached.exe -d start
啟動memcache

(3)下載php_memcache.dll
到php安裝目錄擴展目錄 php\ext

(4)修改php.ini 加入
extension=php_memcache.dll 重啟apache.查看phpinfo.php 如果有memcache模塊 則

說明安裝成功

2、thinkphp 中memcache
的使用

(1)ThinkPHP/conf/convention.php 修改緩存類型

'DATA_CACHE_TYPE'

=> 'Memcache', //
數據緩存類型,

支持: File|Db|Apc|Memcache|Shmop|Sqlite|Xcache|Apachenote|Eaccelerator

(2)thinkphp官方下載擴展ThinkPHP_Extend_3.1.2/Extend/Driver/Cache/CacheMemcache.class.php
保存到
ThinkPHP/Lib/Driver/Cache/CacheMemcache.class.php

(3)測試:
S('test','memcache');$test
= S('test'); echo $test;

輸出memcache
測試成功。
此為轉載,不是我原創,

B. 如何設置memcached來共享php的session

有3種設置方法,都是通過設置php.ini(也就是php的配置文件)來進行設置的
1.直接修改php.ini配置文件

1
2
3

session.save_handler = memcache //設置session的儲存方式為memcache
memcache.hash_strategy = "consistent"//設置memcache的hash演算法
session.save_path = "tcp://127.0.0.100:11211" //設置session儲存的位置,多台memcache用逗號隔開,例如:tcp://127.0.0.1:11211,tcp://127.0.0.1:12000

2.利用目錄下的 .htaccess 文件配置 (apache支持,nginx需要配置)

1
2

php_value session.save_handler "memcache"
php_value session.save_path "tcp://127.0.0.1:11211"

3.在項目的PHP文件中修改配置 (哪個頁面用就在哪個頁面寫)

1
2

ini_set("session.save_handler", "memcache");
ini_set("session.save_path", "tcp://127.0.0.100:11211");

C. 使用php Memcache模塊如何正確遍歷所有KEY以及VALUE

在php提供的用於與memcached交互的擴展模塊中有memcached與memcache,前者提供方法getAllKeys用於遍歷所有Memcached伺服器上的key,但是並不保證原子操作,而後者卻沒有提供任何方法,雖然在PHP官方
文檔中有人給出使用方法getExtendedStats來間接獲取Memcached伺服器上的所有key,但是給出的代碼是有不少坑的,如果拿來就用,對於cluster的memcached伺服器而言,有些問題就需要指出來。
下面將給出官方文檔中的代碼,並指出可能面臨的問題,代碼如下:
<?php
/**
*Functiontogetallmemcachekeys
*@authorManishPatel
*@Created:28-May-2010
*/
functiongetMemcacheKeys(){

$memcache=newMemcache;
$memcache->connect('127.0.0.1',11211)ordie("");

$list=array();
$allSlabs=$memcache->getExtendedStats('slabs');
$items=$memcache->getExtendedStats('items');
foreach($allSlabsas$server=>$slabs){
foreach($slabsAS$slabId=>$slabMeta){
$cmp=$memcache->getExtendedStats('cachemp',(int)$slabId);
foreach($cmpAS$keys=>$arrVal){
foreach($arrValAS$k=>$v){
echo$k."<br>";
}
}
}
}//EOgetMemcacheKeys()?>
在上述代碼中,如果用於獲取單個memcached伺服器上的key,是不存在任何問題,但是獲取連接池中的多個memcached所有key就存在問題,會發現列印出重復的key,問題就在於當使用getExtendedStats用去特定$slabID
上的信息時,返回的是連接池中所有的伺服器上的特定$slabId的存儲的keys信息。當$server為"127.0.0.1:11214"且$slabId為0將變數$cmp的信息列印出如下所示:
array(2){
["127.0.0.1:11214"]=>
array(1){
["course_schools__??¨é?¨"]=>
array(2){
[0]=>
string(1)"0"[1]=>
string(10)"12"}
}
["127.0.0.1:11216"]=>
array(1){
["monitorMemcache"]=>
array(2){
[0]=>
string(2)"10"[1]=>
string(10)"12"}
}
}
當$server為"127.0.0.1:11216"且$slabId為0將變數$cmp的信息列印出如下所示:
array(2){
["127.0.0.1:11214"]=>
array(1){
["course_schools__??¨é?¨"]=>
array(2){
[0]=>
string(1)"0"[1]=>
string(10)"12"}
}
["127.0.0.1:11216"]=>
array(1){
["monitorMemcache"]=>
array(2){
[0]=>
string(2)"10"[1]=>
string(10)"12"}
}
}

D. PHP中的Memcache和memcached的區別 Memcache的操作方法

Memcached和Memcache是Memcached伺服器的擴展


E. php中memcached怎麼存多維數組

PHP的Memcached的驅動會自動進行serialize和unserialize,你所需要做的是:
1. 選取一個合適key,比如 "POST_OF_USER_" . $userId
2. 調用set函數把數據丟進去就行了
示例代碼:
全選復制放進筆記// 0. 准備:
$cache = new Memcache();
$cache->connect('127.0.0.1', 11211); // 請替換為你的memcache伺服器地址和埠
$userId = // 你自己想辦法獲取...

// 1. 構造cache KEY
$cacheKey = "POSTS_OF_USER_" . $userId;

// 2. 從緩存中獲取數據
$posts = $cache->get($cacheKey);
if ($posts === false){
// 3. 緩存失效了,載入數據
$posts = // 你自己想辦法載入數據

// 4. 保存數據到緩存中
$cache->set($cacheKey, $posts);
}

// OK,可以使用posts了

F. 如何設置memcached來共享php的session

如果有多台memcached伺服器,那麼可以使用php-memcache或者php-memcached做相應的設置
編輯vi /etc/php5/apache2/php.ini
使用php-memcache:
session.save_handler = memcache
session.save_path = "tcp://10.1.1.1:11211"
使用php-memcached:
session.save_handler = memcached
session.save_path = "10.1.1.1:11211"

G. php memcached怎麼用

memcached是一種緩存技術, 基於c/s模式,他可以把你的數據放入內存,從而通過內存訪問提速,因為內存最快的, memcached技術的主要目的提速,
在memachec 中維護了一張大的hashtable表 ,該表是在內存,表的結構是
key value
字串 (字串,數值,數組,對象,布爾,二進制數據,null)

u 安裝並使用memcached
安裝步驟
(1) 下載memcached軟體
(2) 安裝
進入cmd ,切換到 memcached.exe 文件所在目錄
memcached.exe –d install
(3) 啟動memcached
第一種,可以到服務點擊啟動
第二種, 命令行
memcached.exe –m 200MB –d start 【以deamon方式啟動,默認64M】

如果你在啟動時,win7啟動不成功, 則可以使用如下方法
memcached.exe –p 埠號
轉載,僅供參考。

H. php 使用memcached 怎麼做登錄

原本就不應該用memcached來保存登錄狀態,如果非要用memcached做點跟登錄有關的事,那就用它來保存以下用戶信息就行了。
登錄信息保存在session或者cookie里,session會更安全,cookie可以長期保存。每次操作都用session或cookie里的登錄信息與資料庫里或memcached里的用戶信息做驗證。
memcached其實是一個內存管理工具,它並非PHP的一部分,只是正好PHP可以使用它。

I. linux下安裝Memcached伺服器和客戶端與PHP使用示例

本文實例講述了Linux下安裝Memcached伺服器和客戶端與php使用。分享給大家供大家參考,具體如下:
Memcached是高性能的分布式內存緩存伺服器,通過緩存資料庫查詢結果,減少資料庫訪問次數,以提高動態Web應用的速度和可擴展性。
系統環境:CentOS
7.2
64位
Apache2.4.33
安裝libevent依賴庫
wget
https://github.com/downloads/libevent/libevent/libevent-2.0.15-stable.tar.gz
tar
-zxvf
libevent-2.0.15-stable.tar.gz
cd
libevent-2.0.15-stable
./configure
--prefix=/usr/local
make
sudo
make
install
安裝Memcached伺服器
wget
http://memcached.googlecode.com/files/memcached-1.4.9.tar.gz
tar
-zxvf
memcached-1.4.9.tar.gz
cd
memcached-1.4.9
./configure
--prefix=/usr/local/memcached
make
sudo
make
install
啟動Memcache伺服器:
/usr/local/memcached/bin/memcached
-d
-m
128
-u
root
-p
11211
安裝Memcached客戶端
wget
http://pecl.php.net/get/memcache-2.2.5.tgz
tar
-zxvf
memcache-2.2.5.tgz
cd
memcache-2.2.5
./configure
--enable-memcache
--with-php-config=/usr/bin/php-config
--with-zlib-dir
make
sudo
make
install
【make報錯:
***
[memcache.lo]
Error
1】解決方法:
進入memcache安裝目錄,找到mamcache.c文件,將所有的zend_list_insert加上TSRMLS_CC,形如:zend_list_insert(pool,
le_memcache_pool
TSRMLS_CC);
客戶端安裝好之後,我們發現PHP擴展庫中多了一個memcache.so
在PHP配置文件php.ini中加入該擴展:
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20131226/memcache.so
重啟伺服器,通過輸出phpinfo()查看該擴展相關信息
下面寫一個簡單的例子,實現memcache擴展與Memcached伺服器的交互
<?php
$mc
=
new
Memcache();
//創建Memcache對象
$mc->connect("127.0.0.1",
11211);
//連接Memcached伺服器
$mc->set('test','hello
world',0,10);
//存儲數據
echo
$mc->get('test');
//獲取數據
$mc->delete('test');
//刪除數據
$mc->flush();
//強制刷新全部緩存,即清空Memcached伺服器
$mc->close();
//斷開與Memcached伺服器的連接
更多關於PHP相關內容感興趣的讀者可查看本站專題:《php緩存技術總結》、《PHP數組(Array)操作技巧大全》、《php字元串(string)用法總結》、《PHP錯誤與異常處理方法總結》、《php面向對象程序設計入門教程》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:linux下安裝php的memcached客戶端CentOS
5.4下的Memcache安裝步驟(Linux+Nginx+PHP+Memcached)linux下安裝memcached_動力節點Java學院整理Linux
下安裝
memcached

memcacheq的方法在Linux伺服器上安裝
memcached的基本操作linux下編譯安裝memcached服務php模塊memcache和memcached區別分析php擴展memcached和memcache的安裝配置方法PHP
使用memcached簡單示例分享PHP
MemCached高級緩存配置圖文教程PHP
MemCached
高級緩存應用代碼

J. php安裝了memcached擴展,怎麼使用

首先查看memcache的依賴庫是否有安裝,如果對這個有疑問可以參考php手冊的memcache的安裝需求說明
命令如下:
查詢: rpm -qa | grep libevent
安裝:yum -y install libenent*

安裝memcached,相當於apache的httpd是用來啟動memcache和管理memcache的
命令如下:
yum -y install memcached

接下來再安裝memcache,這里我們不要考慮對別的包有什麼依賴yum會幫我們解決的,這也是yum的強悍之處
命令如下:
yum -y install php-pecl-memcache

然後查看memcached的bin安裝目錄,啟動memcache,相關參數的作用裡面有詳細說明

然後簡單的寫一個memcache連接是否成功的測試代碼測試一下看看是否成功,很不給面子沒有顯示出來我們要的效果

下面說一下我的一般排錯辦法
1.查看相關文件的許可權時候設置正常
2.查看linux的防火牆的設置
3.動態查看apache的錯誤日誌的提示信息
4.查看linux的SELINUX的設置
那下面就安按照這個思路去排錯

上面按照前三步的順序調查問題仍然存在,最後的去看看SELINUX的設置了,其中你可以用tail -f error_log 去動態監測錯誤日誌,但是這里從錯誤日誌看不出來什麼東西
命令如下:
查看SELINUX的模式:getenforce
設置SELINUX的模式:setenforce 0

或者編輯這個文 :/etc/selinux/config
最後重啟查看效果,問題解決了!

閱讀全文

與phpmemcached使用教程相關的資料

熱點內容
下班之後的程序員 瀏覽:69
檢測支持ssl加密演算法 瀏覽:340
衢州發布新聞什麼APP 瀏覽:82
中國移動長沙dns伺服器地址 瀏覽:249
wifi密碼加密了怎麼破解嗎 瀏覽:596
linux命令cpu使用率 瀏覽:67
linux實用命令 瀏覽:238
傳奇引擎修改在線時間命令 瀏覽:109
php取域名中間 瀏覽:897
cad命令欄太小 瀏覽:830
php開發環境搭建eclipse 瀏覽:480
qt文件夾名稱大全 瀏覽:212
金山雲伺服器架構 瀏覽:230
安卓系統筆記本怎麼切換系統 瀏覽:618
u盤加密快2個小時還沒有搞完 瀏覽:93
小米有品商家版app叫什麼 瀏覽:94
行命令調用 瀏覽:436
菜鳥裹裹員用什麼app 瀏覽:273
窮查理寶典pdf下載 瀏覽:514
csgo您已被禁用此伺服器怎麼辦 瀏覽:398