一、安装redis

ThinkPHP内置支持的缓存类型包括file、memcache、wincache、sqlite。ThinkPHP默认使用自带的采用think\Cache类。

可以在小皮的软件管理中安装redis(比较简单快捷),也可以先参考安装redis文章:

点我进入windows下的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

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

(3)保存,重启服务器


三、在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的一些基本操作,但是不够

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

(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’).'<br>’;
echo $redis->lpop(‘arr’).'<br>’; //从最左边将值从栈顶取出之后删掉
echo ‘取出后的长:’.$redis->llen(‘arr’).'<br>’;
echo ‘整个列表查看:’;
dd($redis->lrange($redis->keys(‘arr’)[0], 0 ,-1));//尽量使用var_dump(),此句后面的语句将不被执行,我只是为了好看
$redis->del(‘arr’); //删除当前数据对象(string、list、hash..)
}

运行结果:


 四、总结

总之,thinkphp6配置与基础使用redis并没有太大的难点,关键就是网上的记录总结参差不齐,毕竟搜索资料的人的水平也参差不齐对吧(所以这个问题没办法解决,只能多学,多看)。

本文章只介绍了框架的配置以及一些基本用法,关于后续的如何使用redis去处理一些类似高并发(就是将list作为队列使用,结合案例学得快些)、以及如何使用php操作redis加锁等操作,博主也会在学习后尽量总结完整并把链接放在本文章下。