ThinkPHP6.0+ 使用Redis 原始用法

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);

成功!

相关推荐
贝猫说python35 分钟前
大模型比赛2.3智能体开发(工具调用智能问答助手)
数据库·oracle
许彰午2 小时前
28-ORA-01110数据文件读取错误
数据库·oracle
凯凯姜2 小时前
MySQL 联合索引设计与索引失效
数据库·mysql
猫咪很可爱3 小时前
Oracle TEMP 表空间不足(ORA-01652)问题分析与优化实践
数据库·oracle
九零HTTP4 小时前
10月21号-CSDN配菜-IP池的5个坑
服务器·数据库·tcp/ip
Data-Miner4 小时前
需要做财务数据分析,有什么好用的工具?从准备到出报告的实操指南
大数据·数据库·数据分析
ITxiaobing20235 小时前
海外广告投放的 IP 定位服务怎么选?一份基于实测数据的选型参考
网络协议·tcp/ip·php
weixin_417396835 小时前
桌面云终端PXE启动失败怎么排查?从DHCP Option到镜像下发
开发语言·前端·php·技术·酒店·综合布线·弱电
袋鼠云数栈5 小时前
让 SQL 解析不再重复造轮子:SqlParserX 正式开源
数据库·人工智能·sql·开源·数据治理
这个DBA有点耶5 小时前
期货 CTP 系统 Oracle RAC 迁移国产库实战:读写分离架构设计与性能对标
数据库·架构·dba