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

use appBaseController;
use thinkfacadeCache;

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

成功!

原文地址:https://www.cnblogs.com/laijinquan/p/13613647.html