Thinkphp6 配置并使用redis圖文詳解
一、安裝redis
ThinkPHP內(nèi)置支持的緩存類型包括file、memcache、wincache、sqlite。ThinkPHP默認(rèn)使用自帶的采用think\Cache類。
可以在小皮的軟件管理中安裝redis(比較簡單快捷),也可以先參考安裝redis文章:
?
二、在thinkphp6中配置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框架中簡單使用redis
(1)在方法中使用 set、get
use think\cache\driver\Redis; //需要使用到的類
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í)行高級方法,需要使用句柄,如下:
(2)在方法中使用lpush,rpush,llen,lrange等方法進(jìn)行模擬壓棧后查看(不要在意直接操作了棧底的位置,主要為了展示使用redis-list)
public function test()
{
$redis = Cache::store('redis')->handler(); //返回句柄對象,可執(zhí)行其它高級方法
$redis->lpush('arr','我是第一個(gè)入棧');//比作壓棧的方式,從列表的左側(cè)插入
$redis->lpush('arr','我是第二個(gè)入棧');
$redis->rpush('arr','我從棧底擠一擠');
$redis->lpushx('arr','我應(yīng)該最先被取出!'); //若arr是一個(gè)空列表,則什么都不做
echo '取出前的長:'.$redis->llen('arr').'
';
echo $redis->lpop('arr').'
'; //從最左邊將值從棧頂取出之后刪掉
echo '取出后的長:'.$redis->llen('arr').'
';
echo '整個(gè)列表查看:';
dd($redis->lrange($redis->keys('arr')[0], 0 ,-1));//盡量使用var_dump(),此句后面的語句將不被執(zhí)行,我只是為了好看
$redis->del('arr'); //刪除當(dāng)前數(shù)據(jù)對象(string、list、hash..)
}運(yùn)行結(jié)果:

四、總結(jié)
總之,thinkphp6配置與基礎(chǔ)使用redis并沒有太大的難點(diǎn),關(guān)鍵就是網(wǎng)上的記錄總結(jié)參差不齊,畢竟搜索資料的人的水平也參差不齊對吧(所以這個(gè)問題沒辦法解決,只能多學(xué),多看)。
本文章只介紹了框架的配置以及一些基本用法,關(guān)于后續(xù)的如何使用redis去處理一些類似高并發(fā)(就是將list作為隊(duì)列使用,結(jié)合案例學(xué)得快些)、以及如何使用php操作redis加鎖等操作,博主也會(huì)在學(xué)習(xí)后盡量總結(jié)完整并把鏈接放在本文章下。
若有理解不對以及操作問題,請私信或留言指正,謝謝~
- ThinkPHP6使用JWT+中間件實(shí)現(xiàn)Token驗(yàn)證實(shí)例詳解
- thinkphp6中Redis 的基本使用方法詳解
- ThinkPHP6.0前置、后置中間件區(qū)別
- ThinkPHP6.0 重寫URL去掉Index.php的解決方法
- 基于thinkphp6.0的success、error實(shí)現(xiàn)方法
- thinkphp3.2框架集成QRcode生成二維碼的方法分析
- Thinkphp使用Zxing擴(kuò)展庫解析二維碼內(nèi)容圖文講解
- Thinkphp3.2.3整合phpqrcode生成帶logo的二維碼
- ThinkPHP6使用最新版本Endroid/QrCode生成二維碼的方法實(shí)例
相關(guān)文章
php正則取img標(biāo)記中任意屬性(正則替換去掉或改變圖片img標(biāo)記中的任意屬性)
因有一項(xiàng)目新聞發(fā)布系統(tǒng),數(shù)據(jù)庫內(nèi)容字段中存儲(chǔ)的是原圖的路徑(當(dāng)然還有其他文字內(nèi)容啦,內(nèi)容里插圖時(shí),存的是圖片路徑),但前臺(tái)想使用縮略圖,琢磨1小時(shí)余,得到以下結(jié)果,可解決問題2013-08-08
PHP的substr_replace將指定兩位置之間的字符替換為*號
PHP的substr_replace將指定兩位置之間的字符替換為*號的代碼,需要的朋友可以參考下。2011-05-05
php session實(shí)現(xiàn)多級目錄存放實(shí)現(xiàn)代碼
這篇文章主要介紹了php session實(shí)現(xiàn)多級目錄存放實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-02-02
PHP用continue跳過本次循環(huán)中剩余代碼的注意點(diǎn)
continue跳轉(zhuǎn)語句用來跳過本次循環(huán)中指定條件的語句,并且繼續(xù)執(zhí)行其他的循環(huán)語句。下面這篇文章主要給大家介紹了關(guān)于在PHP中用continue跳過本次循環(huán)中剩余代碼的一個(gè)注意點(diǎn),文中的內(nèi)容比較基礎(chǔ),需要的朋友可以參考借鑒,下面來一起看看吧。2017-06-06
php判斷數(shù)組元素中是否存在某個(gè)字符串的方法
今天在寫一個(gè)函數(shù)的時(shí)候,需要用到判斷數(shù)組中是否存在某個(gè)字符串,方便我們繼續(xù)后面的操作,這里簡單為大家介紹下,需要的朋友可以參考下2014-06-06

