ThinkPHP6.0+ 使用Redis 原始用法

news2024/11/17 23:56:57

composer 安装 predis/predis 依赖,或者安装php_redis.dll的扩展。

我这里选择的是predis/predis 依赖。

composer require predis/predis

进入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'  => [],
        ],
        // 更多的缓存连接
    ],
    // redis缓存
    'redis' =>  [
        'type'  =>  'redis',
        'host'  =>  '127.0.0.1',
        'timeout'=> 3600
    ],
    
    
];

复制代码

页面测试代码

复制代码

<?php
namespace app\controller;

use app\BaseController;
use think\facade\Cache;

class Index extends BaseController
{
    public function index()
    {
        //Cache::set('name', [1,2,3]);
        //(Cache::get('name'));
        Cache::store('redis')->set('name', [1,2,3]);
        dump(Cache::store('redis')->get('name'));
    }
}

复制代码

效果

redis 高级用法

在php 原生中redis 的使用是

复制代码

        //加载扩展
        $redis = new \Redis();
        //连接扩展
        $redis->connect("127.0.0.1","6379");
  
        //判断是否过期
        $redis_status = $redis->exists("info");
        if($redis_status==false){
            //缓存失效,重新存入
            //查询数据
            $Info = db("user")->where('id', $userId)->find();
            //转换成字符串,有利于存储
            $redisInfo = serialize($Info);
            //存入缓存
            $redis->set("info",$redisInfo);
            //设置缓存周期,60秒
            $redis->expire("info",60);
            var_dump("新存入的值");
        }
        //获取缓存
        $result = unserialize($redis->get("info"));
  
        //当前时间
        var_dump(date("Y-m-d H:i:s",time()));
        var_dump($result);

复制代码

thinkephp 中要使用php redis 的扩展方法。则需使用handler();
代码示例

$redis = Cache::store('redis')->handler(); // 这条代码等于  $redis = new \Redis();

$redis->set("info",'hello world');   // 设置字段
$redis->expire("info",10);  // 设置过期时间
var_dump($result); //1 没过期,2 为过期;

根据菜鸟教程,试一下列表存储:

 代码:

复制代码

$redis = Cache::store('redis') -> handler();
        $redis->lpush("tutorial-list", "Redis");
        $redis->lpush("tutorial-list", "Mongodb");
        $redis->lpush("tutorial-list", "Mysql");
        // 获取存储的数据并输出
        $arList = $redis->lrange("tutorial-list", 0 ,5);
        echo "Stored string in redis";
        print_r($arList);

复制代码

成功!

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

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

相关文章

【文件上传】大文件分片上传、断点续传、秒传前后端实现

1、大文件上传面临的问题&#xff1a; 在传统的文件上传中&#xff0c;由于文件过大&#xff0c;导致网络传输时间长&#xff0c;这过程中会遇到网络不稳定或者不小心关闭的浏览器&#xff08;电脑&#xff09;的情况&#xff0c;从而导致文件上传中断。中断之后&#xff0c;又…

第三届OceanBase数据库大赛启动,升级为国家级竞赛

近日&#xff0c;第三届OceanBase数据库大赛启动报名。本届大赛进一步升级为全国大学生计算机系统能力大赛&#xff0c;由系统能力培养研究专家组发起&#xff0c;全国高等学校计算机教育研究会、系统能力培养研究项目发起高校主办&#xff0c;OceanBase承办&#xff0c;旨在培…

API接口开发系列,各电商(商品详情数据,商品sku数据,商品属性数据,商品优惠券数据)

API接口开发是指开发和构建应用程序之间交流的接口。主要包括设计、实现和维护接口&#xff0c;以便不同应用程序之间可以进行数据交换和相互调用功能。通过API接口开发&#xff0c;可以实现不同系统、平台或服务之间的数据交互和功能集成。 API接口开发的步骤一般包括以下几个…

程序员当累了,带爱人出去广西北海旅游下吧

先说说消费吧&#xff0c;我们一共花了8000多块钱。 两个人坐的往返机票&#xff0c;3600块钱。 上涠洲岛的船票加门票890块钱 住宿费一共4天850&#xff0c; 北海 两天350&#xff0c;涠洲岛住两天400。 路费住宿5500(200滴滴打车费) 其他消费2500 好吧&#xff0c;现在开始我…

【Apollo】Apollo 8.0系统下载指南

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 七七的闲谈 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f…

二叉树题目:二叉树的坡度

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;二叉树的坡度 出处&#xff1a;563. 二叉树的坡度 难度 3 级 题目描述 要求 给你一个二叉树的根结点 root \texttt{root} root&#xff0c;返回树…

新能源电动车交流充电桩主板技术参数

你是否知道交流充电桩主板的技术参数呢?今天我们就来了解一下。 首先&#xff0c;交流充电桩主板一般采用10V-60V电压&#xff0c;支持多种电压输入&#xff0c;比如220V、380V、400V等&#xff0c;可以满足不同用户的需求。其次&#xff0c;频率一般为50/60Hz&#xff0c;但也…

uniapp编写微信小程序遇到的坑总结

1、阻止事件冒泡 使用uniapp开发微信小程序的时候&#xff0c;发现使用click.stop来阻止事件冒泡没有作用&#xff0c;点击了之后发现仍然会触发父组件或者祖先组件的事件。 在网上查阅&#xff0c;发现使用tap.stop才能阻止事件冒泡。 2、二维码生成 在网上找了很多&…

【进程与线程】最好懂的讲解

目录 1.CPU的管理 2.进程 2.1.概述 2.2.数据结构 2.3.进程状态 2.4.进程与内存 2.5.PCB队列 3.线程 3.1.概述 3.2.实现 1.CPU的管理 进程和线程是操作系统里面的概念&#xff0c;这个概念其实是对CPU的管理策略。整个操作系统都可以看作计算机硬件的管理软件&#x…

git本地选项配置

一&#xff0c;简介 在git工具安装完成之后&#xff0c;需要设置一下常用的配置&#xff0c;如邮箱&#xff0c;缩写&#xff0c;以及git commit模板等等。本文就来详细介绍些各个配置如何操作&#xff0c;供参考。 二&#xff0c;配置步骤 2.1 查看当前git的配置 git conf…

JVM性能分析-jstat工具观察gc频率

jstat jstat是java自带的工具&#xff0c;在bin目录下 用法 语法&#xff1a;jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]] [kqkyyj-2 bin]$ jstat -help Usage: jstat -help|-optionsjstat -<option> [-t] [-h&l…

C++ 面向对象三大特性——继承

✅<1>主页&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;C 继承 ☂️<3>开发环境&#xff1a;Visual Studio 2022 &#x1f4ac;<4>前言&#xff1a;面向对象三大特性的&#xff0c;封装&#xff0c;继承&#xff0c;多态&#xff…

官网下载安装达芬奇18.5详细步骤

目录 一、介绍 &#xff08;一&#xff09;特色功能介绍 &#xff08;二&#xff09;版本介绍 二、下载安装教程 &#xff08;一&#xff09;达芬奇官网下载 &#xff08;二&#xff09;安装 一、介绍 &#xff08;一&#xff09;特色功能介绍 以下是达芬奇视频剪辑软件…

【UE4 RTS】11-HUD functionality Part1

前言 本篇实现了将游戏状态中的游戏时间和游戏日期通过蓝图接口的方式传递给控件蓝图&#xff0c;并且正确显示&#xff0c;另外还实现了控件蓝图界面上切换12小时和24小时制的游戏时间显示方式。 效果 步骤 一、显示游戏日期 1. 打开蓝图接口“RTS_GameTime_IF” 添加一个…

回声消除-卡尔曼滤波

卡尔曼滤波 卡尔曼滤波的设计过程中需要定义两个变量&#xff0c;一个是状态量&#xff0c;另一个是观测量 状态量 状态量是跟踪目标。将状态量记作 x n \mathbf{x}_n xn​&#xff0c;状态量的协方差矩阵记作 P n \mathbf{P}_n Pn​&#xff0c;可以由前一个时刻的状态&…

视频集中存储/云存储/磁盘阵列EasyCVR平台接入RTSP设备出现离线情况的排查

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

20天部署,支持每天上百家门店咖啡物料配送,顺丰供应链是这样做到的

走进顺丰供应链华北智能仓&#xff0c;映入眼帘是多台自如穿梭的智能搬运机器人和自动高效的分拣设备。1200平米内&#xff0c;拆零输入、分货、按订单取出……通过自动化解决方案&#xff0c;作业效率大幅提升。 这是顺丰供应链与全球仓储机器人引领者极智嘉(Geek)的又一次智…

如何快速搭建app自动化环境编写用例?

使用Airtest 作为测试开发工程师&#xff0c;快速搭建app自动化环境并编写用例可以使用Airtest解决方案来实现。Airtest是一款基于Python的全平台UI自动化测试框架&#xff0c;支持多种移动设备和模拟器&#xff0c;同时集成了丰富的图像识别和手势操作功能。 以下是使用Airt…

有理数思维导图怎么画?这种方法绘制很方便

有理数思维导图怎么画&#xff1f;为什么要绘制思维导图&#xff1f;因为它可以帮助我们更好地组织和理解信息。在数学中&#xff0c;绘制有理数思维导图也可以帮助我们更好地理解有理数的概念和性质。 有理数是我们日常生活中经常接触到的数学概念&#xff0c;包括正整数、负整…

动态内存分配及管理——C语言

目录 一、为什么存在动态内存分配 二、动态内存函数介绍 2.1 malloc 2.2 free 2.3 calloc 2.4 realloc 三、常见的动态内存错误 3.1 对NULL指针的解引用操作 3.2 对动态开辟空间的越界访问 3.3 对非动态开辟内存使用free释放 3.4 使用free释放一块动态开辟内存的一部…