美文网首页
yii Zipkin report error Failed t

yii Zipkin report error Failed t

作者: answer6 | 来源:发表于2022-05-03 02:27 被阅读0次

    踩坑记录,yii 框架不是很熟悉,今天需要根据业务做个一个 redis hmset 的操作,没想到一波三折。
    主题是: yii redis 存储 hash


    不管是 laravel、yaf 基本上都是 hmSet(key, array); 没想到 yii 的 hmset 方法有些独特。

    # 刚开始我查询的时候没注意,
    # 以为是博主写的demo,但是 yii 的操作确实是这样,不能直接写数组。这是个坑。
    hmset(key, 'name', 'tom', 'age', 18);
    

    如果我们拿到的数据是个数组,应该怎么处理呢? 可以用 PHP 的 ... 去操作一下。

    # 假装是源数据,需要 hmset
    $arr  = ['name'=>'tom', 'age'=>18, 'city'=>'suzhou'];
     $requireData = [];
    foreach($arr as $key => $val) {
        # 根据需求去二次处理数据等等
        $requireData[] = $key;
        $requireData[] = $val;
    }
    # 写入缓存
    # 注意这个 key 值,是不带前缀的,有的配置会加一个 key 前缀,这里最好测试下,是否加上了。没有的话需要自己另外拼接了。
    # Yii::$app->cache->set(key, value) // 这个前缀就会自己加上的。
    # 有的博文说这里不能用 cache,需要用 redis,但是测试出来,cache 里面配置好 redis,是可以直接用的。
    Yii::$app->cache->hmset($cacheKey, ...$requireData);
    
    • 还有一个坑,可能用 phpstorm 会检查出来,就是这里的 hmset 必须是纯小写, hmSet 等类似的命令都会报错的。

    参考博文(可以看到的时候已经折腾半天了。。。):

    这个方法没有测试,未知。
    Yii::$app->redis->executeCommand('HMSET', ['user:1', 'name', 'joe', 'solary', 2000])
    

    相关文章

      网友评论

          本文标题:yii Zipkin report error Failed t

          本文链接:https://www.haomeiwen.com/subject/rnlbyrtx.html