国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 php框架 YII Yii框架如何正確使用MemCache緩存

Yii框架如何正確使用MemCache緩存

Nov 18, 2020 pm 03:29 PM
memcache yii 框架 快取

Yii框架如何正確使用MemCache緩存

具體操作如下:

(圖文教學(xué)建議:yii

一、設(shè)定memcache server 伺服器

1、下載memcached軟體包,下載地址:

http://pan.baidu.com/s/1boAnghp

解壓縮,把memcached.exe放到隨意一個地方,比如:d:/memcached/下(我解壓到了我的wampserver的bin目錄下與php目錄同級)。

2、windows R快捷鍵輸入cmd, 在命令列中輸入程式碼,切換到memcache.exe的目錄下:

Yii框架如何正確使用MemCache緩存

3、輸入如下程式碼安裝memcache.exe: memcached.exe -d install

Yii框架如何正確使用MemCache緩存

#4、輸入memcached.exe -d start啟動

Yii框架如何正確使用MemCache緩存

#設(shè)定成功

//memcache常用的函數(shù):
Memcache::add   //添加一個值,如果已經(jīng)存在,則返回false
Memcache::addServer  // 添加一個可供使用的服務(wù)器地址
Memcache::close   //關(guān)閉一個Memcache對象
Memcache::connect  // 創(chuàng)建一個Memcache對象
memcache_debug  // 控制調(diào)試功能
Memcache::decrement  // 對保存的某個key中的值進行減法操作
Memcache::delete   //刪除一個key值
Memcache::flush  // 清除所有緩存的數(shù)據(jù)
Memcache::get   //獲取一個key值
Memcache::getExtendedStats   //獲取進程池中所有進程的運行系統(tǒng)統(tǒng)計
Memcache::getServerStatus// 獲取運行服務(wù)器的參數(shù)
Memcache::getStats   //返回服務(wù)器的一些運行統(tǒng)計信息
Memcache::getVersion   //返回運行的Memcache的版本信息
Memcache::increment   //對保存的某個key中的值進行加法操作
Memcache::pconnect  // 創(chuàng)建一個Memcache的持久連接對象
Memcache::replace   //對一個已有的key進行覆寫操作
Memcache::set   //添加一個值,如果已經(jīng)存在,則覆寫
Memcache::setCompressThreshold   //對大于某一大小的數(shù)據(jù)進行壓縮
Memcache::setServerParams   //在運行時修改服務(wù)器的參數(shù)

二、安裝php_memcache.dll擴充功能

#1、先下載符合你的php版本的php_memcache.dll擴充

#你位址:

http://pan.baidu.com/s/1skJnZIl

2、複製張貼在你的php/ext資料夾裡

3、在php.ini裡面加入以下程式碼,導(dǎo)入擴充:

extension=php_memcache.dll

三、yii裡面的配置

1.如果你用的是基礎(chǔ)架構(gòu):開啟config/web.php

如果你用的是進階框架:開啟config/main.php

##新增如下程式碼:

'cache' => [
    'class' => 'yii\caching\MemCache',
    'servers' => [
        [
            'host' => 'localhost',
            'port' => 11211,
            'weight' => 100,
        ],
        [
            'host' => 'localhost',
            'port' => 11211,
            'weight' => 50,
        ],
    ],
],

現(xiàn)在就可以在你的控制器的action方法中使用如下程式碼了:

//緩存MemCache
 
$key='key';
$value='this is the value';
<pre name="code" class="php">Yii::$app->cache->set($key,$value);
echo "lixian";
echo Yii::$app->cache->get($key);
exit();

但是當(dāng)你使用過期時間時即:

Yii::$app->cache->set($key,$value,6);//過期時間為6s
echo "lixian";
echo Yii::$app->cache->get($key);
exit();
就輸出不了了,這是框架本身的一個bug,解決方法如下:

在yii2使用memcache前根據(jù)文件配置好對應(yīng)的參數(shù),在使用memcache(非memcached)過程中會發(fā)現(xiàn) Yii::$app->cache->set('key','value'); 當(dāng)這句話沒有設(shè)定有效時間為多少秒時,可以正常取得到快取中鍵為key的值,但表示此key不過期。

當(dāng)設(shè)定了有效時間時, Yii::$app->cache->set('key','value',60); 例如60秒,就會出現(xiàn)取不到key對應(yīng)的value值,網(wǎng)路和論壇裡搜了搜,沒有找到解決方法,也有很多phper遇到這類似的問題。所以特意去看了看底層程式碼,引用的memcache類別為Yii2自備的yii\caching\MemCache, Yii::$app->cache->set('key','value') 這句程式碼會自動呼叫memcache類別下的setValue方法來設(shè)定緩存,所以問題也許就出現(xiàn)在這裡了。

後面經(jīng)過測試,發(fā)現(xiàn)這個方法最後一句 return $this->useMemcached ? $this->_cache->set($key, $value, $expire) : $this->_cache->set($key, $value, 0, $expire ) 的問題,將這句程式碼改為 return $this->useMemcached ? $this->_cache->set($key, $value, $expire) : $this->_cache->set($key, $value, 0, $duration ) 後,再測試發(fā)現(xiàn)問題已經(jīng)解決。

原因則是這句return程式碼裡使用memcache時呼叫的 $this->_cache->set($key, $value, 0, $expire) ,相當(dāng)於 $mem = new Memcache();$mem->set($key,$value,0,$expire); 這裡最關(guān)鍵的一點是:memcache要設(shè)定的時間的含義是有效時間為多少秒,memcached要設(shè)定的時間的含義是在哪一秒到期(等效於time() $duration),所以發(fā)現(xiàn)問題所在之後將原來程式碼裡的第二個$expire改成$duration問題就解決了。

以上是Yii框架如何正確使用MemCache緩存的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何評估Java框架商業(yè)支援的性價比 如何評估Java框架商業(yè)支援的性價比 Jun 05, 2024 pm 05:25 PM

評估Java框架商業(yè)支援的性價比涉及以下步驟:確定所需的保障等級和服務(wù)等級協(xié)定(SLA)保證。研究支持團隊的經(jīng)驗和專業(yè)知識??紤]附加服務(wù),如昇級、故障排除和效能最佳化。權(quán)衡商業(yè)支援成本與風(fēng)險緩解和提高效率。

PHP 框架的學(xué)習(xí)曲線與其他語言框架相比如何? PHP 框架的學(xué)習(xí)曲線與其他語言框架相比如何? Jun 06, 2024 pm 12:41 PM

PHP框架的學(xué)習(xí)曲線取決於語言熟練度、框架複雜性、文件品質(zhì)和社群支援。與Python框架相比,PHP框架的學(xué)習(xí)曲線較高,而與Ruby框架相比,則較低。與Java框架相比,PHP框架的學(xué)習(xí)曲線中等,但入門時間較短。

PHP 框架的輕量級選項如何影響應(yīng)用程式效能? PHP 框架的輕量級選項如何影響應(yīng)用程式效能? Jun 06, 2024 am 10:53 AM

輕量級PHP框架透過小體積和低資源消耗提升應(yīng)用程式效能。其特點包括:體積小,啟動快,記憶體佔用低提升響應(yīng)速度和吞吐量,降低資源消耗實戰(zhàn)案例:SlimFramework創(chuàng)建RESTAPI,僅500KB,高響應(yīng)性、高吞吐量

php框架laravel和yii區(qū)別是什麼 php框架laravel和yii區(qū)別是什麼 Apr 30, 2025 pm 02:24 PM

Laravel和Yii的主要區(qū)別在於設(shè)計理念、功能特性和使用場景。 1.Laravel注重開發(fā)的簡潔和愉悅,提供豐富的功能如EloquentORM和Artisan工具,適合快速開發(fā)和初學(xué)者。 2.Yii強調(diào)性能和效率,適用於高負載應(yīng)用,提供高效的ActiveRecord和緩存系統(tǒng),但學(xué)習(xí)曲線較陡。

yii與Docker:容器化和部署您的應(yīng)用程序 yii與Docker:容器化和部署您的應(yīng)用程序 Apr 02, 2025 pm 02:13 PM

使用Docker容器化和部署Yii應(yīng)用的步驟包括:1.創(chuàng)建Dockerfile,定義鏡像構(gòu)建過程;2.使用DockerCompose啟動Yii應(yīng)用和MySQL數(shù)據(jù)庫;3.優(yōu)化鏡像大小和性能。這不僅涉及到具體的技術(shù)操作,還包括理解Dockerfile的工作原理和最佳實踐,以確保高效、可靠的部署。

Java框架學(xué)習(xí)路線圖:不同領(lǐng)域中的最佳實踐 Java框架學(xué)習(xí)路線圖:不同領(lǐng)域中的最佳實踐 Jun 05, 2024 pm 08:53 PM

針對不同領(lǐng)域的Java框架學(xué)習(xí)路線圖:Web開發(fā):SpringBoot和PlayFramework。持久層:Hibernate和JPA。服務(wù)端響應(yīng)式程式設(shè)計:ReactorCore和SpringWebFlux。即時計算:ApacheStorm和ApacheSpark。雲(yún)端運算:AWSSDKforJava和GoogleCloudJava。

如何為不同的應(yīng)用場景選擇最佳的golang框架 如何為不同的應(yīng)用場景選擇最佳的golang框架 Jun 05, 2024 pm 04:05 PM

根據(jù)應(yīng)用場景選擇最佳Go框架:考慮應(yīng)用類型、語言特性、效能需求、生態(tài)系統(tǒng)。常見Go框架:Gin(Web應(yīng)用)、Echo(Web服務(wù))、Fiber(高吞吐量)、gorm(ORM)、fasthttp(速度)。實戰(zhàn)案例:建構(gòu)RESTAPI(Fiber),與資料庫互動(gorm)。選擇框架:效能關(guān)鍵選fasthttp,靈活Web應(yīng)用選Gin/Echo,資料庫互動選gorm。

Golang框架學(xué)習(xí)過程中常見的迷思有哪些? Golang框架學(xué)習(xí)過程中常見的迷思有哪些? Jun 05, 2024 pm 09:59 PM

Go框架學(xué)習(xí)的迷思有以下5種:過度依賴框架,限制彈性。不遵循框架約定,程式碼難以維護。使用過時庫,帶來安全和相容性問題。過度使用包,混淆程式碼結(jié)構(gòu)。忽視錯誤處理,導(dǎo)致意外行為和崩潰。

See all articles