Redis学习 - Tp6配置并使用redis图文详解 小皮面板(三)

2023-11-13

这篇文章主要介绍了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缓存

<?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,
        ],
    ],
];

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

(1)在方法中使用 setget 

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)在方法中使用lpushrpushllenlrange等方法进行模拟压栈后查看(不要在意直接操作了栈底的位置,主要为了展示使用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..)
    }

运行结果:

四、报错信息

错误1

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redis学习 - Tp6配置并使用redis图文详解 小皮面板(三) 的相关文章

  • PHP 中的 NOW() 函数

    是否有 PHP 函数以与 MySQL 函数相同的格式返回日期和时间NOW 我知道如何使用date 但我想问是否有专门用于此的功能 例如 返回 2009 12 01 00 00 00 您可以使用date https www php net m
  • 未捕获的异常“Google_IO_Exception”,消息为“HTTP 错误:无法连接”

    我有一个任务 查询 运行一些从 gmail 邮箱检索数据的 php 代码 直到上周五 2015 年 4 月 10 日 它一直工作正常 现在我收到以下错误日志 E 11 58 26 094 2015 04 15 200 3 38 KB 14
  • 使用PHP套接字发送和接收数据

    我正在尝试通过 PHP 套接字发送和接收数据 一切正常 但是当我尝试发送数据时 PHP 不发送任何内容 Wireshark 告诉我发送的数据长度为 0 我正在使用这段代码
  • 如何用javascript正确读取php cookies

    考虑这个 php 和 javascript 代码 然后我在控制台中看到的是 utma 111872281 291759993 1444771465 1445374822 1445436904 4 utmz 111872281 1444771
  • postgreSQL 在 WAMP 上的集成

    我刚刚在 Windows 7 上安装了 postgreSQL 我正在尝试将 postgreSQL 与 WAMP 服务器集成 为此 我在 httpd conf 和 php ini 文件中进行了以下更改 1个加载模块c path to libp
  • php 表单提交 - Q2

    我对这个虚拟问题感到抱歉 这是我的简单 PHP 表单 其中包含两个 SQL 表和 ADD 提交 按钮 我希望将人员从 Test1 转移到 Test2 很多事情都很好 只有提交按钮不起作用 因此 Test2 表没有反馈 Revised 现在提
  • 如何在 codeigniter 查询中使用 FIND_IN_SET?

    array array classesID gt 6 this gt db gt select gt from this gt table name gt where array gt order by this gt order by q
  • PHP - 扩展 __construct

    我想知道你是否可以帮助我 我有两个类 一个扩展了另一个 B 类将由各种不同的对象扩展 并用于常见的数据库交互 现在我希望 B 类能够处理其连接和断开连接 而无需来自 A 类或任何外部输入的指示 据我了解 问题是扩展类不会自动运行其 cons
  • jquery上传完成后重定向到新页面

    我正在尝试让这个 jquery 工具与我的网站一起使用以进行文件上传 https github com blueimp jQuery File Upload https github com blueimp jQuery File Uplo
  • 在 Laravel 中动态设置数据库连接和语言

    我有 3 个域指向同一个Laravel应用 我想要的是每个人都连接到自己的数据库并根据 TLD 加载自己的语言文件 我可以在哪个文件中设置这些设置 我可以直接在配置文件中执行此操作 或者可以在加载配置之前执行某些事件 我拥有的是一个简短的函
  • 模拟/存根在 PHPUnit 中实现 arrayaccess 的类的对象

    这是我正在为其编写测试套件的类的构造函数 它扩展了 mysqli function construct Config c store config file this gt config c do mysqli constructor pa
  • Yii2 中 init() 和 __construct() 方法有什么区别

    init 方法 public function init construct method public function construct 那么 它们之间有什么区别 应该使用哪一个呢 init 是从以下对象扩展的任何对象的方法yii b
  • 如何在 Smarty 中打印 json

    我从 api 获取 json 如何使用 Smarty 打印 json Json格式 first name jinu last name mk loginid email protected cdn cgi l email protectio
  • 如何解决 Laravel 8 UI 分页问题?

    我在尝试最近发布的 laravel 8 时遇到了问题 我试图找出变化是什么以及它是如何工作的 当我这样做时 我遇到了分页 laravel 8 UI 变得混乱的问题 不知何故它发生了 有人可以帮助我吗 或者经历过同样的事情 像这样我在 lar
  • PHP:在脚本完成之前获取输出

    我有一个名为 data php 的脚本 如下所示 do some stuff echo result do some other stuff eg database operations 我需要在另一个脚本中使用 data php 的输出
  • PHP 错误:“无法通过引用传递参数 2”

    我只是需要有关这个 PHP 错误的帮助 我不太明白 致命错误 无法在第 13 行 web stud openup inactivatesession php 中通过引用传递参数 2
  • 如何确保在 PHP 的“foreach”循环中重置该值?

    我正在写一个简单的 PHP 页面和一些foreach使用了循环 以下是脚本 arrs array a b c foreach arrs as arr if substr arr 0 1 b echo This is b End of fir
  • 接口中的构造方法

    接口中的构造方法不好吗 为什么人们认为有人想要实例化接口 我们想要做的是强制实现者实现构造函数 就像其他接口方法一样 接口就像一个合同 假设我有一个接口 Queue 并且我想确保实现者创建一个带有一个参数的构造函数 该构造函数创建一个单例队
  • 如何在 Carbon Laravel 中添加日期和另一个日期?

    在我的 laravel 项目中 我想将日期时间增加到前一个日期时间 这是我的代码 expire order 0 gt expire date new Carbon now gt addMonths 6 这两行的结果是 2018 01 28
  • 如何在数据列表 HTML PHP 中设置选择

    您好我想知道是否有一种方法可以在数据列表中设置选定的值 我想要这样的东西

随机推荐

  • Flutter全部图标之快速找到合适的Icon图标

    1 由于Flutter中的图标太多 并且无法直观地进行预览 因为把所有的图标截图下来展示 以便可以快速找到你想要的图标
  • 2023.6.26

  • jdk安装

    开发十年 就只剩下这套Java开发体系了 gt gt gt 1 安装jdk 1 1 jdk下载地址 http www oracle com technetwork java javase downloads jdk8 downloads 2
  • 关于服务连接器(Servlet)你了解多少?

    文章目录 Servlet 1 简介 2 快速入门 3 执行流程 4 生命周期 5 方法介绍 6 体系结构 7 urlPattern配置 8 XML配置 最后说一句 Servlet 1 简介 Servlet是JavaWeb最为核心的内容 它是
  • [Ctf show web] 萌新计划12

    preg match 没有匹配到表达式时输出 c 利用baes64加密绕过 c a base64 decode c3lzdGVt b base64 decode dGFjIGNvbmZpZy5waHA a b
  • 1127: 矩阵乘积java

    import java util Scanner public class Main public static void main String args Scanner input new Scanner System in int m
  • springboot+redistemplate 集群配置

    redisConfig 配置类 package com zhouzhou springredistemplatedemo controller import io lettuce core cluster ClusterClientOpti
  • 前言

    es7 1中文指南 前言 数据存储 信息输出 搜索 分析 more 前言 Elasticsearch是Elastic Stack核心的分布式搜索和分析引擎 Logstash和Beats有助于收集 聚合和丰富您的数据并将其存储在Elastic
  • Ubuntu18中NVIDIA,cuda,cudnn,pytorch安装

    注意 nvidia驱动和cuda cudnn pytroch python的对应关系 参考内容 https blog csdn net tjuyanming article details 80862290 https blog csdn
  • 数据链路层以太网协议+ARP协议

    数据链路层 1 负责相邻设备之间的传输 决定性因素是设备的MAC地址 MAC地址 6字节的整数 uint8 t addr 6 MAC地址在每一个机器上都是独一无二的 以以网协议 目的MAC地址 6字节 源MAC地址 6字节 类型 2字节 数
  • 实现element table组件内行与行之间设置间隙效果以及行内的渐变效果以及各种问题

    在项目开发中 产品提了这样一个需求 实现表格内每一行之间存在间隙以及渐变效果 具体效果如下图所示 因为element的table组件默认的是行与行挨着 所以需要更改组件的样式 具体代码如下所示 1 设置行与行之间的间距 v deep el
  • Java中如何使用消息队列实现异步(ActiveMQ,RabbitMQ,Kafka)

    一 ActiveMQ 示例 在 Java 中 可以使用消息队列实现异步处理 下面是一个简单的示例代码 用于说明如何使用 ActiveMQ 实现消息队列异步处理 添加 ActiveMQ 依赖 在 pom xml 文件中添加以下依赖
  • Unity3D开发入门教程(四)——用Lua实现组件

    Python微信订餐小程序课程视频 https edu csdn net course detail 36074 Python实战量化交易理财系统 https edu csdn net course detail 35475 五邑隐侠 本名
  • @WebServlet注解的解释和使用

    大家好 今天分享一下 WebServlet注解 首先 我们要知道 我们要写一个servlet程序 web xml里的配置项很重要 里面包含了很多关于类绑定 以及服务器资源的请求路径问题 就是注册 先把我这个看一遍 这个原生的servlet程
  • ubuntu解决matplotlib绘图中文显示问题

    首先来看一下没有解决问题前的样子 设置横纵坐标以及title的时候全都是显示的方框 这让我们很苦恼 那有没有什么办法解决呢 方法一 比较推荐方法一 一次解决 永久受益 后续不用再设置 1 首先下载Simhei ttf 这里不给下载链接了请自
  • K8s - Pod配置容器

    1 编写配置文件以及pod创建过程 root k8s master yaml cat ceph rbd deployment yaml apiVersion apps v1 kind Deployment metadata name ngi
  • 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(1)

    别具一格 原创唯美浪漫情人节表白专辑 复制就可用 html5 css3 svg 表白爱心代码 1 一 前言 回眸之间 丰盈了岁月 涟漪了思绪 轻轻落笔 不写伤痕 不写仇怨 只写岁月经历领悟后的感恩与体会 说来有点尴尬 我一个奶奶级别的 却从
  • 《大数据导论》理解大数据

    本节书摘来自华章出版社 Spark大数据分析 核心概念 技术及实践 一书中的第1章 第1节 作者托马斯 埃尔 Thomas Erl 瓦吉德 哈塔克 Wajid Khattak 保罗 布勒 Paul Buhler 更多章节内容可以访问云栖社区
  • Unity_Shader_ Properties属性的赋值

    Shader Unlit vf2 in out 输入与输出 Properties MainColor 我是主颜色 Color 1 0 0 1 SubShader Pass CGPROGRAM pragma vertex vert pragm
  • Redis学习 - Tp6配置并使用redis图文详解 小皮面板(三)

    这篇文章主要介绍了Thinkphp6 配置并使用redis的方法 结合实例形式详细分析了Redis的安装 配置以及thinkphp6操作Redis的基本技巧 需要的朋友可以参考下 一 安装redis ThinkPHP内置支持的缓存类型包括f