predis hmset嵌套数组的值

时间:2013-11-18 15:22:15

标签: php redis predis

我正在使用predis php客户端。 我的代码就像:

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

ObjArray就像: 阵列(     “id”=> 1212,     “name”=> “测试”,     “喜欢”=>阵列(1,2,3),     “comments”=>阵列(0 =>(1,2,3),1 =>(1,2,3))

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

我们不能拥有redis hashe值的数组吗?

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

我觉得我很难回答这个问题,但有人可能会觉得这个答案很有用。

在保存多项目数据时使用json_encode,并在从Redis获取数据后使用json_decode

答案 2 :(得分:0)

我从未使用过predis,但很少有研究表明,由于predis不会自动序列化您的对象,因此可能需要序列化您的对象。

有关以下链接的更多信息

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