我正在使用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值的数组吗?
答案 0 :(得分:4)
Redis哈希值不是多维的,因此字段值只能是字符串。 likes
变量中comments
和$ObjArray
中的值是数组,这意味着它们不好,您应该序列化它们(JSON或您喜欢的任何序列化格式)或将它们存储到不同的和单独的键。
答案 1 :(得分:1)
我觉得我很难回答这个问题,但有人可能会觉得这个答案很有用。
在保存多项目数据时使用json_encode,并在从Redis获取数据后使用json_decode
答案 2 :(得分:0)
我从未使用过predis,但很少有研究表明,由于predis不会自动序列化您的对象,因此可能需要序列化您的对象。
有关以下链接的更多信息