ThinkPHP6 配置使用Redis

news2025/1/20 1:36:24

安装Redis

如果未安装redis,请先安装redis,文档可参考:

- windows安装redis

- linux安装redis

 安装predis

项目中需要使用predis来连接和操作redis,我们用composer来安装和加载它。

项目目录命令行执行:

composer require predis/predis

安装过程:

 

配置Redis

在应用配置cache.php文件,file配置后新增redis配置。

打开TP中封装的think\cache\driver\Redis,查看有哪些配置可写。

 写几个常用的,其他的就不写了。

return [
    // 默认缓存驱动
    'default' => env('cache.driver', 'file'),

    // 缓存连接方式配置
    'stores'  => [
        'file' => [
            // 驱动方式
            'type'       => 'File',
            // 缓存保存目录
            'path'       => '',
            // 缓存前缀
            'prefix'     => '',
            // 缓存有效期 0表示永久缓存
            'expire'     => 0,
            // 缓存标签前缀
            'tag_prefix' => 'tag:',
            // 序列化机制 例如 ['serialize', 'unserialize']
            'serialize'  => [],
        ],
        'redis' => [
            // 缓存主机
            'host'       => '127.0.0.1',
            // 缓存端口
            'port'     => '6379',
            // 缓存密码
            'password'     => '',
            // 缓存数据库
            'select'   => 0,
            // 缓存有效期 0表示永久缓存
            'timeout'   => 0,
            // 缓存前缀
            'prefix'   => ''
        ],
        // 更多的缓存连接
    ],
];

Redis连接测试

在TP中发现有两种连接Redis的方式,一种就是TP原有的封装的Redis,即: think\cache\driver\Redis;另一种就是,刚才安装的predis。

TP封装的Redis操作

public function index()
{
    // 字符串操作
    $conn = new \think\cache\driver\Redis(config('cache.stores.redis'));
    $conn->set('name', '张三');
    echo $conn->get('name');

    // 集合set操作
    $conn = new \think\cache\driver\Redis(config('cache.stores.redis'));
    $key = 'user';
    $conn->sadd($key, '张三');
    $conn->sadd($key, '李四');
    $conn->sadd($key, '王五');
    $conn->sadd($key, '赵六');
    $arr = $conn->smembers($key);
    print_r($arr);die;
}

虽然没有方法提示,但是执行都没问题。

结果如下:

 predis Redis操作

public function index()
{
    // 字符串操作
    $conn = new \Predis\Client(config('cache.stores.redis'));
    $conn->set('name', '李四');
    echo $conn->get('name');
    
// 集合set操作
    $conn = new \Predis\Client(config('cache.stores.redis'));
    $key = 'puser';
    $conn->sadd($key, ['张三','李四','王五']);
    $arr = $conn->smembers($key);
    print_r($arr);
}

有方法和参数提示,提示sadd的第二个参数是数组格式,汗!没提示就错了,跟TP封装的Redis竟然不一样。

结果如下:

总结:

经过测试,这两种都可以使用,使用TP封装的Redis操作,不需安装;使用predis需要安装;区别只是predis封装的redis操作更多,使用时有相应方法参数提示。大家可以根据自己的需求,挑选使用,推荐使用predis,有方法和参数提示不易出错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/155237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

北大硕士LeetCode算法专题课--链表相关问题

算法面试相关专题: 北大硕士LeetCode算法专题课-字符串相关问题_ 北大硕士LeetCode算法专题课-数组相关问题_ 北大硕士LeetCode算法专题课-基础算法查找_ 北大硕士LeetCode算法专题课-基础算法之排序_ 北大硕士LeetCode算法专题课---算法复杂度介绍_ 北大硕士…

荧光定量PCR检测法的原理和应用领域

一、荧光定量PCR原理 在PCR扩增反应体系中加入荧光基团就是荧光定量PCR(Real-time PCR),通过对扩增反应中每一个循环产物荧光信号的实时检测,最后通过标准曲线对未知模板进行定量分析的方法。 以探针法荧光定量PCR为例:PCR扩增时…

STM32G0开发笔记-Platformio+libopencm3-EEPROM M24C02使用

使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为EEPROM M24C02的使用方法。 1 新建项目 建立eeprom项目 在PIO的Home页面新建项目,项目名称eeprom,选择开发板为 MonkeyPi_STM32_G070RB,开发框架选择libopencm3&am…

loss盘点: GIoU loss (拆 PaddleDetection 轮子)

1. GIoU 计算 关于 GIoU 的实现,可直接参看原文给出的网站: https://giou.stanford.edu/ GIoU∣A∩B∣∣A∪B∣−∣C∖(A∪B)∣∣C∣IoU−∣C∖(A∪B)∣∣C∣GIoU \frac { |A \ \cap \ B | } { |A \ \cup \ B | } - \frac { | C \setminus (A \ \cup \…

Spring MVC 总结

Spring MVC Spring MVC 是 javaWeb 的开发模块,是一个架构模式,是整个 javaWeb 开发领域 最重要的一个技术。 Spring MVC 文档 Spring MVC 是 Spring 体系的 轻量级Web MVC框架。Spring MVC 的核心 Controller 控制器,用于处理请求&#xff…

C语言入门(五)——深入理解函数

return 语句 增量式开发 递归 return 语句 之前我们一直在main函数中使用return语句,现在是时候全面深入地学习一下。在有返回值地函数中,return语句的作用是提供整个函数的返回值,并结束当前函数返回到调用它的地方。在没有返回值的函数中…

vue修改el-input样式,样式穿透

vue–element的form表单中修改el-input样式 在使用 element ui 组件过程中,我最近碰到了新的问题。 初始的界面效果是这样的: 这个效果真的不怎么好看,我想把输入框的背景色变浅,变得透明。于是我在代码中添加 .el-input{backgro…

Polygon生态

1. 引言 当前区块链存在不可能三角问题: 1)去中心化2)可扩展性3)安全性 当前单一链仅能兼顾不可能三角中的2个维度,而无法做到三者兼顾。 区块链中的主要角色有: 1)共识层——负责对包含在…

python基础篇之数字类型(上)

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页:lqj_本人的博客_CSDN博客-微信小程序,前端,vue领域博主lqj_本人擅长微信小程序,前端,vue,等方面的知识https://blog.csdn.net/lbcyllqj?spm1000.2115.3001.5343 哔哩哔哩欢迎关注&…

【NI Multisim 14.0原理图设计基础——元器件属性设置】

目录 序言 一、属性编辑 二、元器件属性设置 🍉 1.“标签”选项卡 🍉2.“显示”选项卡 🍉 3.“值”选项卡 🍉 4.“故障”选项卡 🍉5.“管脚”选项卡 🍉 6.“变体”选项卡 🍉 7.“用户字…

正则表达式查漏补缺(包括es9的新方法)

一、创建正则 1、方法创建正则 // let regnew RegExp("a","ig")//检查字符串中是否包含a // let str"a" // console.log(reg.test("As"))i是忽略大小写 g是全局匹配,不会只返回一个 2、字面量创建正则 // let reg/a|c/…

挂载本地光盘

一、挂载本地光盘到/mnt 使用mount模块 二.配置YUM源 (1)使用yum_repository模块 (2) 控制端主机编辑配置文件使用synchronize模块发送到受控主机 (3) 使用file模块创建一个base.repo文件,并…

HarmonyOS鸿蒙学习笔记(17)获取屏幕宽高等属性

ohos.display组件使用获取屏幕属性的三种方法getDefaultDisplay(callback: AsyncCallback<Display>)的用法getDefaultDisplay()的用法getAllDisplay(callback: AsyncCallback<Array<Display>>)的用法参考资料ohos.display屏幕属性提供管理显示设备的一些基础…

linux 设备树简析

1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. 设备树的来源 在 Linux 中&#xff0c;每个设备驱动&#xff0c;管理一组设备数据&#xff0c;类似面向对象编程中类和其实例对象的关系。一段时…

VMware-【Linux】centos7 /boot磁盘扩容

我的/boot当时安装的时候只分了不到200MB现在不够了所以扩容下这是我学习的文章&#xff0c;细节说明了很多地方还有一些坑&#xff1a;https://blog.51cto.com/u_15801765/5697187开始操作前&#xff0c;可以先用命令 df -hl 记录一下你现在/boot 剩余磁盘空间。到文章最后面我…

设计模式_创建型模式 -《工厂模式》

设计模式_创建型模式 -《工厂模式》 笔记整理自 黑马程序员Java设计模式详解&#xff0c; 23种Java设计模式&#xff08;图解框架源码分析实战&#xff09; 概述 需求&#xff1a;设计一个咖啡店点餐系统。 设计一个咖啡类&#xff08;Coffee&#xff09;&#xff0c;并定义其…

MySQL学习之一条SQL查询语句的执行

文章目录前言一、MySQL基础架构二、连接器三、查询缓存四、分析器五、优化器六、执行器前言 今天我们通过一条SQL查询语句的执行过程&#xff0c;来剖析MySQL的基础架构。让我们从宏观上先有一个对MySQL的认识与了解 一、MySQL基础架构 首先&#xff0c;我们要对MySQL的整体架…

深入分析Linux PCI驱动框架分析(二)

说明&#xff1a; Kernel版本&#xff1a;4.14ARM64处理器使用工具&#xff1a;Source Insight 3.5&#xff0c; Visio 1. 概述 本文将分析Linux PCI子系统的框架&#xff0c;主要围绕Linux PCI子系统的初始化以及枚举过程分析&#xff1b;如果对具体的硬件缺乏了解&#xff…

详解c++---vector介绍

这里写目录标题什么是vectorvector的定义reservevector数据插入push_backinsertresizeassignvector数据的删除pop_backeraseclearvector性质查看sizecapacityemptymax_sizevector元素修改operator[ ]atfrontbackvector其他函数operatorswap什么是vector vector是表示可变大小数…

深入浅出Cookie、Session、Token:背后的技术原理

目录 简介 . 网站交互体验升级 1.1 无状态的 HTTP 协议 1.2 解决之道 2. Cookie方案 2.1 Cookie 定义和作用 2.2 服务端创建 Cookie 2.4 存在的问题 3. Session 方案 3.1 Session 机制的概念 3.2 简单的交互流程 3.3 Session 的实现方式 3.4 存在的问题 4. Token…