ThinkPHP6.0+ 使用Redis 原始用法


composer 安裝 predis/predis 依賴,或者安裝php_redis.dll的擴展。

我這里選擇的是predis/predis 依賴。

composer require predis/predis

進入config/cache.php 配置添加redis緩存支持
示例:

<?php

// +----------------------------------------------------------------------
// | 緩存設置
// +----------------------------------------------------------------------

return [
    // 默認緩存驅動
    'default' => env('cache.driver', 'file'),

    // 緩存連接方式配置
    'stores'  => [
        'file' => [
            // 驅動方式
            'type'       => 'File',
            // 緩存保存目錄
            'path'       => '',
            // 緩存前綴
            'prefix'     => '',
            // 緩存有效期 0表示永久緩存
            'expire'     => 0,
            // 緩存標簽前綴
            'tag_prefix' => 'tag:',
            // 序列化機制 例如 ['serialize', 'unserialize']
            'serialize'  => [],
        ],
        // 更多的緩存連接
    ],
    // redis緩存
    'redis' =>  [
        'type'  =>  'redis',
        'host'  =>  '127.0.0.1',
        'timeout'=> 3600
    ],
    
    
];
頁面測試代碼
<?php
namespace app\controller;

use app\BaseController;
use think\facade\Cache;

class Index extends BaseController
{
    public function index()
    {
        //Cache::set('name', [1,2,3]);
        //(Cache::get('name'));
        Cache::store('redis')->set('name', [1,2,3]);
        dump(Cache::store('redis')->get('name'));
    }
}
效果
 
 

redis 高級用法

在php 原生中redis 的使用是

        //加載擴展
        $redis = new \Redis();
        //連接擴展
        $redis->connect("127.0.0.1","6379");
  
        //判斷是否過期
        $redis_status = $redis->exists("info");
        if($redis_status==false){
            //緩存失效,重新存入
            //查詢數據
            $Info = db("user")->where('id', $userId)->find();
            //轉換成字符串,有利於存儲
            $redisInfo = serialize($Info);
            //存入緩存
            $redis->set("info",$redisInfo);
            //設置緩存周期,60秒
            $redis->expire("info",60);
            var_dump("新存入的值");
        }
        //獲取緩存
        $result = unserialize($redis->get("info"));
  
        //當前時間
        var_dump(date("Y-m-d H:i:s",time()));
        var_dump($result);

thinkephp 中要使用php redis 的擴展方法。則需使用handler();
代碼示例

$redis = Cache::store('redis')->handler(); // 這條代碼等於  $redis = new \Redis();

$redis->set("info",'hello world');   // 設置字段
$redis->expire("info",10);  // 設置過期時間
var_dump($result); //1 沒過期,2 為過期;

根據菜鳥教程,試一下列表存儲:

 

 代碼:

$redis = Cache::store('redis') -> handler();
        $redis->lpush("tutorial-list", "Redis");
        $redis->lpush("tutorial-list", "Mongodb");
        $redis->lpush("tutorial-list", "Mysql");
        // 獲取存儲的數據並輸出
        $arList = $redis->lrange("tutorial-list", 0 ,5);
        echo "Stored string in redis";
        print_r($arList);

成功!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM