Thinkphp6 配置并使用redis圖文詳解
ThinkPHP內(nèi)置支持的緩存類(lèi)型包括file、memcache、wincache、sqlite。ThinkPHP默認(rèn)使用自帶的采用think\Cache類(lèi)。
可以在小皮的軟件管理中安裝redis(比較簡(jiǎn)單快捷),也可以先參考安裝redis文章:
windows下的redis安裝教程
?
(1)進(jìn)入config/cache.php 配置添加redis緩存
<?php// +----------------------------------------------------------------------// | 緩存設(shè)置// +----------------------------------------------------------------------return [ // 默認(rèn)緩存驅(qū)動(dòng) 'default' => env('cache.driver', 'file'), // 緩存連接方式配置 'stores' => ['file' => [ // 驅(qū)動(dòng)方式 'type' => 'File', // 緩存保存目錄 'path' => '', // 緩存前綴 'prefix' => '', // 緩存有效期 0表示永久緩存 'expire' => 0, // 緩存標(biāo)簽前綴 'tag_prefix' => 'tag:', // 序列化機(jī)制 例如 ['serialize', 'unserialize'] 'serialize' => [],],// 配置Reids'redis' => [ 'type' => 'redis', 'host' => '127.0.0.1', 'port' => '6379', 'password' => '', 'select' => '0', // 全局緩存有效期(0為永久有效) 'expire' => 0, // 緩存前綴 'prefix' => '', //默認(rèn)緩存周期 'timeout' => 3600,], ],];(2)進(jìn)入當(dāng)前所使用的版本php目錄下,找到php的配置文件php.ini,并配置如下參數(shù)
extension=php_redis.dll若不配置此項(xiàng),可能報(bào)錯(cuò): 不支持:redis
(3)保存,重啟服務(wù)器
三、在TP6框架中簡(jiǎn)單使用redis(1)在方法中使用 set、get
use think\cache\driver\Redis; //需要使用到的類(lèi)use think\facade\Cache;use think\facade\Config;public function test(){ $redis = new Redis(Config::get('cache.stores.redis')); $redis->set('key','value1'); echo $redis->get('key');}至此,一些基本的操作我們可以在:
\vendor\topthink\framework\src\think\cache\Driver.php文件中找到redis的一些基本操作,但是不夠
執(zhí)行高級(jí)方法,需要使用句柄,如下:
(2)在方法中使用lpush,rpush,llen,lrange等方法進(jìn)行模擬壓棧后查看(不要在意直接操作了棧底的位置,主要為了展示使用redis-list)
public function test() {$redis = Cache::store('redis')->handler(); //返回句柄對(duì)象,可執(zhí)行其它高級(jí)方法$redis->lpush('arr','我是第一個(gè)入棧');//比作壓棧的方式,從列表的左側(cè)插入$redis->lpush('arr','我是第二個(gè)入棧');$redis->rpush('arr','我從棧底擠一擠');$redis->lpushx('arr','我應(yīng)該最先被取出!'); //若arr是一個(gè)空列表,則什么都不做echo '取出前的長(zhǎng):'.$redis->llen('arr').'';echo $redis->lpop('arr').''; //從最左邊將值從棧頂取出之后刪掉echo '取出后的長(zhǎng):'.$redis->llen('arr').'';echo '整個(gè)列表查看:';dd($redis->lrange($redis->keys('arr')[0], 0 ,-1));//盡量使用var_dump(),此句后面的語(yǔ)句將不被執(zhí)行,我只是為了好看$redis->del('arr'); //刪除當(dāng)前數(shù)據(jù)對(duì)象(string、list、hash..) }運(yùn)行結(jié)果:
總之,thinkphp6配置與基礎(chǔ)使用redis并沒(méi)有太大的難點(diǎn),關(guān)鍵就是網(wǎng)上的記錄總結(jié)參差不齊,畢竟搜索資料的人的水平也參差不齊對(duì)吧(所以這個(gè)問(wèn)題沒(méi)辦法解決,只能多學(xué),多看)。
本文章只介紹了框架的配置以及一些基本用法,關(guān)于后續(xù)的如何使用redis去處理一些類(lèi)似高并發(fā)(就是將list作為隊(duì)列使用,結(jié)合案例學(xué)得快些)、以及如何使用php操作redis加鎖等操作,博主也會(huì)在學(xué)習(xí)后盡量總結(jié)完整并把鏈接放在本文章下。
若有理解不對(duì)以及操作問(wèn)題,請(qǐng)私信或留言指正,謝謝~
相關(guān)文章:
