【问题标题】:predis hmset nested array in valuepredis hmset 值中的嵌套数组
【发布时间】:2013-11-18 15:22:15
【问题描述】:

我正在使用 predis php 客户端。 我的代码是这样的:

$ObjArray = get_object_vars ( $obj );     
$redis->hmset("post:4545",$objArray);

ObjArray 就像: 大批( “身份证” => 1212, “名称” => “测试”, “喜欢” => 数组(1,2,3), "cmets" => 数组(0=>(1,2,3),1=>(1,2,3))

这样我得到了错误: redis ERR 协议错误:无效的批量长度

我们不能在 redis 哈希值中有数组吗?

【问题讨论】:

    标签: php redis predis


    【解决方案1】:

    Redis 哈希不是多维的,因此字段值只能是字符串。 likescomments 在您的 $ObjArray 变量中的值是数组,这意味着它们不好,您应该序列化它们(JSON 或您喜欢的任何序列化格式)或将它们存储到不同的单独键中。

    【讨论】:

    • 没错,json stringify 在这种情况下似乎是数组的解决方案
    【解决方案2】:

    我想我回答这个问题已经很晚了,但有人可能会觉得这个答案很有用。

    保存多维数据时使用json_encode,从Redis获取数据后使用json_decode

    【讨论】:

      【解决方案3】:

      我从未使用过 predis,但很少有研究表明您可能必须序列化您的对象,因为 predis 不会自动序列化您的对象。

      更多信息见以下链接

      https://github.com/nrk/predis/issues/29

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-06
        • 1970-01-01
        • 1970-01-01
        • 2020-08-25
        • 1970-01-01
        相关资源
        最近更新 更多