断线的纸鸢M 2021-08-20 16:27 采纳率: 0%
浏览 109

tp6操作redis设置多键值报错 unserialize(): Error at offset 0 of 5 bytes

tp6内容设置redis多键值,设置应该是成功了。在使用get读取键值的时候,数字类型的能读取到,字符串类型的就报错
源码如下

public function getError(){
        $setMany = ['number'=>'123456','message'=>'hello'];
        $this->redis->mset($setMany);           //一次设置多个键值
        dump($this->redis->get('number'));
        dump($this->redis->get('message'));
    }

报错信息如下:
img
查询redis,两个键值都是设置成功的。

img

应该和数组元素的类型没有关系,数组里都是定义的字符类型。但是如果把键message改成数字,能够正常取到如果把键number改成字符类型。两个就都取不到
如果使用mget()取值的话,两个值都能正常取出
网上有说清楚runtime之类的,都试过了没有效果。是不是和配置或者字符编码有关,搞了好久也没有搞清楚

  • 写回答

1条回答 默认 最新

  • Jason Ho 2021-08-20 16:37
    关注

    如果你要把多个值存在一起,建议使用hash 存储:
    $redis->hSet('NBA', $payload['iss'], $token);

    评论

报告相同问题?

问题事件

  • 修改了问题 8月20日
  • 创建了问题 8月20日

悬赏问题

  • ¥15 onlyoffice编辑完后立即下载,下载的不是最新编辑的文档
  • ¥15 求caverdock使用教程
  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。