• Thinkphp6 配置并使用redis图文详解 小皮面板


    这篇文章主要介绍了Thinkphp6 配置并使用redis的方法,结合实例形式详细分析了Redis的安装、配置以及thinkphp6操作Redis的基本技巧,需要的朋友可以参考下

     一、安装redis

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

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

    (1)下载php redis扩展.打开phpinfo 查看对应的信息

    php添加redis扩展 根据以下链接查找符合php版本的扩展 注意是否为线性(nts-表示否)

    redis:          http://windows.php.net/downloads/pecl/releases/redis/

    igbinary:        http://windows.php.net/downloads/pecl/releases/igbinary/

    下载完后将php_igbinary.dll  和 php_redis.dll 复制进php ext 文件下面 

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

    extension=php_redis.dll 

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

    (3)保存,重启服务器

    二、在thinkphp6中配置redis

    进入config/cache.php 配置添加redis缓存

    1. // +----------------------------------------------------------------------
    2. // | 缓存设置
    3. // +----------------------------------------------------------------------
    4. return [
    5. // 默认缓存驱动
    6. 'default' => env('cache.driver', 'file'),
    7. // 缓存连接方式配置
    8. 'stores' => [
    9. 'file' => [
    10. // 驱动方式
    11. 'type' => 'File',
    12. // 缓存保存目录
    13. 'path' => '',
    14. // 缓存前缀
    15. 'prefix' => '',
    16. // 缓存有效期 0表示永久缓存
    17. 'expire' => 0,
    18. // 缓存标签前缀
    19. 'tag_prefix' => 'tag:',
    20. // 序列化机制 例如 ['serialize', 'unserialize']
    21. 'serialize' => [],
    22. ],
    23. // 配置Reids
    24. 'redis' => [
    25. 'type' => 'redis',
    26. 'host' => '127.0.0.1',
    27. 'port' => '6379',
    28. 'password' => '',
    29. 'select' => '0',
    30. // 全局缓存有效期(0为永久有效)
    31. 'expire' => 0,
    32. // 缓存前缀
    33. 'prefix' => '',
    34. //默认缓存周期
    35. 'timeout' => 3600,
    36. ],
    37. ],
    38. ];

    三、在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. }

    运行结果:

    四、报错信息

    错误1

    $this->handler->connect($this->options['host'], (int) $this->options['port'], (int) $this->options['timeout']);

    解决办法:注意:一定要启动redis

  • 相关阅读:
    聚观早报 | 理想L6正式发布;Meta发布Llama 3
    分享4个MSVCP100.dll丢失的解决方法
    Audio参数讲解
    电子制造仓储条码管理系统解决方案
    【Leetcode】215. 数组中的第K个最大元素
    openGauss每日一练第8天 | openGauss中一个数据库可以存储在多个表空间中
    ITSM有哪些好用的软件?
    CSS Position定位(详解网页中的定位属性)
    【生日快乐】SpringBoot SpringBoot 基础篇(第一篇) 第4章 SpringBoot 综合案例 4.7 修改客户功能
    Part2_扩展MATSIM_Subpart3_个人汽车交通_第12章 交通信号灯和车道
  • 原文地址:https://blog.csdn.net/qq_20869933/article/details/132798448