一、安装redis
ThinkPHP内置支持的缓存类型包括file、memcache、wincache、sqlite。ThinkPHP默认使用自带的采用thinkCache类。
可以在小皮的软件管理中安装redis(比较简单快捷),也可以先参考安装redis文章:
二、在thinkphp6中配置redis
(1)进入config/cache.php 配置添加redis缓存
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 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,并配置如下参数
1 | extension=php_redis.dll |
若不配置此项,可能报错: 不支持:redis
(3)保存,重启服务器
三、在TP6框架中简单使用redis
(1)在方法中使用 set、get
1 2 3 4 5 6 7 8 9 | use thinkcachedriverRedis; //需要使用到的类 use thinkfacadeCache; use thinkfacadeConfig; public function test() { $redis = new Redis(Config::get( 'cache.stores.redis' )); $redis ->set( 'key' , 'value1' ); echo $redis ->get( 'key' ); } |
至此,一些基本的操作我们可以在:
vendortopthinkframeworksrcthinkcacheDriver.php文件中找到redis的一些基本操作,但是不够
执行高级方法,需要使用句柄,如下:
(2)在方法中使用lpush,rpush,llen,lrange等方法进行模拟压栈后查看(不要在意直接操作了栈底的位置,主要为了展示使用redis-list)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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并没有太大的难点,关键就是网上的记录总结参差不齐,毕竟搜索资料的人的水平也参差不齐对吧(所以这个问题没办法解决,只能多学,多看)。
本文章只介绍了框架的配置以及一些基本用法,关于后续的如何使用redis去处理一些类似高并发(就是将list作为队列使用,结合案例学得快些)、以及如何使用php操作redis加锁等操作,博主也会在学习后尽量总结完整并把链接放在本文章下。
若有理解不对以及操作问题,请私信或留言指正,谢谢~