Thinkphp6配置并使用redis的操作方法

2023-09-04

近期在做项目时需要使用Thinkphp6框架,在安装过程需要做redis缓存设置,通过学习官方文档和网上教程,最终解决了redis缓存问题,现将过程分享给大家,供大家参考。

一、安装redis

ThinkPHP内置支持的缓存类型包括file、memcache、wincache、sqlite。ThinkPHP默认使用自带的采用thinkCache类。推荐大家用小皮来安装:

Thinkphp6配置并使用redis的操作方法

二、在thinkphp6中配置redis

(1)进入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'  => [],
        ],
        // 配置Reids
        'redis' => [
            'type' => 'redis',
            'host' => '127.0.0.1',
            'port' => '6379',
            'password' => '',
            'select' => '0',
            // 全局缓存有效期(0为永久有效)
            'expire' => 0,
            // 缓存前缀
            'prefix' => '',
            //默认缓存周期
            'timeout' => 3600,
        ],
    ],
];

(2)进入当前所使用的版本php目录下,找到php的配置文件php.ini,并配置如下参数

extension=php_redis.dll

Thinkphp6配置并使用redis的操作方法

若不配置此项,可能报错:  不支持:redis

(3)保存,重启服务器

三、在TP6框架中简单使用redis 

(1)在方法中使用 set、get

use thinkcachedriverRedis;    //需要使用到的类
use thinkacadeCache;
use thinkacadeConfig;
public function test()
{
    $redis = new Redis(Config::get('cache.stores.redis'));
    $redis->set('key','value1');
    echo $redis->get('key');
}

Thinkphp6配置并使用redis的操作方法

至此,一些基本的操作我们可以在:

endor opthink rameworksrc hinkcacheDriver.php文件中找到redis的一些基本操作,但是不够

执行高级方法,需要使用句柄,如下:

(2)在方法中使用lpush,rpush,llen,lrange等方法进行模拟压栈后查看(不要在意直接操作了栈底的位置,主要为了展示使用redis-list)

public function test()
    {
        $redis = Cache::store('redis')->handler();  //返回句柄对象,可执行其它高级方法
        $redis->lpush('arr','我是第一个入栈');//比作压栈的方式,从列表的左侧插入
        $redis->lpush('arr','我是第二个入栈');
        $redis->rpush('arr','我从栈底挤一挤');
        $redis->lpushx('arr','我应该最先被取出!'); //若arr是一个空列表,则什么都不做
        echo '取出前的长:'.$redis->llen('arr').'
';
        echo $redis->lpop('arr').'
';   //从最左边将值从栈顶取出之后删掉
        echo '取出后的长:'.$redis->llen('arr').'
';
        echo '整个列表查看:';
        dd($redis->lrange($redis->keys('arr')[0], 0 ,-1));//尽量使用var_dump(),此句后面的语句将不被执行,我只是为了好看
        $redis->del('arr'); //删除当前数据对象(string、list、hash..)
    }

运行结果:

Thinkphp6配置并使用redis的操作方法

好了,thinkphp6配置与基础使用redis并没有太大的难点,关键就是网上的记录总结参差不齐,以上方法供大家参考。