翼度科技»论坛 编程开发 PHP 查看内容

Thinkphp6 配置并使用redis图文详解

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
一、安装redis

ThinkPHP内置支持的缓存类型包括file、memcache、wincache、sqlite。ThinkPHP默认使用自带的采用think\Cache类。
可以在小皮的软件管理中安装redis(比较简单快捷),也可以先参考安装redis文章:
windows下的redis安装教程

二、在thinkphp6中配置redis

(1)进入config/cache.php 配置添加redis缓存
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | 缓存设置
  4. // +----------------------------------------------------------------------
  5. return [
  6.     // 默认缓存驱动
  7.     'default' => env('cache.driver', 'file'),
  8.     // 缓存连接方式配置
  9.     'stores'  => [
  10.         'file' => [
  11.             // 驱动方式
  12.             'type'       => 'File',
  13.             // 缓存保存目录
  14.             'path'       => '',
  15.             // 缓存前缀
  16.             'prefix'     => '',
  17.             // 缓存有效期 0表示永久缓存
  18.             'expire'     => 0,
  19.             // 缓存标签前缀
  20.             'tag_prefix' => 'tag:',
  21.             // 序列化机制 例如 ['serialize', 'unserialize']
  22.             'serialize'  => [],
  23.         ],
  24.         // 配置Reids
  25.         'redis' => [
  26.             'type' => 'redis',
  27.             'host' => '127.0.0.1',
  28.             'port' => '6379',
  29.             'password' => '',
  30.             'select' => '0',
  31.             // 全局缓存有效期(0为永久有效)
  32.             'expire' => 0,
  33.             // 缓存前缀
  34.             'prefix' => '',
  35.             //默认缓存周期
  36.             'timeout' => 3600,
  37.         ],
  38.     ],
  39. ];
复制代码
(2)进入当前所使用的版本php目录下,找到php的配置文件php.ini,并配置如下参数
  1. extension=php_redis.dll
复制代码

若不配置此项,可能报错:  不支持:redis
(3)保存,重启服务器
三、在TP6框架中简单使用redis

(1)在方法中使用 setget
  1. use think\cache\driver\Redis;    //需要使用到的类
  2. use think\facade\Cache;
  3. use think\facade\Config;
  4. public function test()
  5. {
  6.     $redis = new Redis(Config::get('cache.stores.redis'));
  7.     $redis->set('key','value1');
  8.     echo $redis->get('key');
  9. }
复制代码

至此,一些基本的操作我们可以在:
\vendor\topthink\framework\src\think\cache\Driver.php文件中找到redis的一些基本操作,但是不够
执行高级方法,需要使用句柄,如下:
(2)在方法中使用lpushrpushllenlrange等方法进行模拟压栈后查看(不要在意直接操作了栈底的位置,主要为了展示使用redis-list)
  1. public function test()
  2.     {
  3.         $redis = Cache::store('redis')->handler();  //返回句柄对象,可执行其它高级方法
  4.         $redis->lpush('arr','我是第一个入栈');//比作压栈的方式,从列表的左侧插入
  5.         $redis->lpush('arr','我是第二个入栈');
  6.         $redis->rpush('arr','我从栈底挤一挤');
  7.         $redis->lpushx('arr','我应该最先被取出!'); //若arr是一个空列表,则什么都不做
  8.         echo '取出前的长:'.$redis->llen('arr').'
  9. ';
  10.         echo $redis->lpop('arr').'
  11. ';   //从最左边将值从栈顶取出之后删掉
  12.         echo '取出后的长:'.$redis->llen('arr').'
  13. ';
  14.         echo '整个列表查看:';
  15.         dd($redis->lrange($redis->keys('arr')[0], 0 ,-1));//尽量使用var_dump(),此句后面的语句将不被执行,我只是为了好看
  16.         $redis->del('arr'); //删除当前数据对象(string、list、hash..)
  17.     }
复制代码
运行结果:

四、总结

        总之,thinkphp6配置与基础使用redis并没有太大的难点,关键就是网上的记录总结参差不齐,毕竟搜索资料的人的水平也参差不齐对吧(所以这个问题没办法解决,只能多学,多看)。
        本文章只介绍了框架的配置以及一些基本用法,关于后续的如何使用redis去处理一些类似高并发(就是将list作为队列使用,结合案例学得快些)、以及如何使用php操作redis加锁等操作,博主也会在学习后尽量总结完整并把链接放在本文章下。
        若有理解不对以及操作问题,请私信或留言指正,谢谢~

来源:https://www.jb51.net/program/290628iq4.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具