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

    成功!

  • 相关阅读:
    python 创建文件夹
    Python利用pandas处理Excel数据的应用
    解决git rebase操作后推送远端分支不成功的问题
    LeetCode 1 两数之和
    LeetCode 70 爬楼梯
    LeetCode 11 盛水最多的容器
    LeetCode 283 移动零
    数据结构与算法 ---- 数组 -- Array
    跳表???
    自顶向下编程
  • 原文地址:https://www.cnblogs.com/laijinquan/p/13613647.html
Copyright © 2020-2023  润新知