zoukankan      html  css  js  c++  java
  • 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);

    成功!

  • 相关阅读:
    DOS命令备忘
    JS面向对象总结
    java 内部类如何访问外部类的对象
    java注解的学习
    VisualVM远程连接服务器设置方法
    oracle 多表插入
    jvm对类的加载顺序测试
    oracle性能学习中总结
    java 权限修饰符的总结
    oracle多单号的说明
  • 原文地址:https://www.cnblogs.com/laijinquan/p/13613647.html
Copyright © 2011-2022 走看看