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

成功!

相关推荐
隔窗听雨眠1 小时前
记一次SQL Server数据库性能分析:从CPU100%到单配置修复的完整诊断
开发语言·数据库·php
samson_www2 小时前
Oracle数据泵拷贝表空间
数据库·dba
三8442 小时前
PHP Session 反序列化(2):漏洞根因 —— 序列化处理器错位与对象注入
android·web安全·php·反序列化·session
呆萌很2 小时前
MySQL 8.4 LTS 完整安装教程
数据库·mysql
秦老师Q2 小时前
php零基础入门到实战,从语法到框架,一篇搞定
开发语言·php
天空'之城3 小时前
单片机基础核心知识点汇总(三十三)
数据库·单片机·嵌入式硬件
后台模板学习4 小时前
2026最新面试真题:到达用英语怎么说背后的逻辑与源码剖析
面试·职场和发展·php
爱吃苹果的日记本4 小时前
数据结构第一课
c语言·数据结构·数据库·学习·c#
hweiyu004 小时前
Redis命令:UNLINK
redis·缓存