1

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

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

ObjArray 就像:array("id" => 1212, "name" => "test", "likes" => array(1,2,3), "comments" => array(0=>(1,2 ,3),1=>(1,2,3))

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

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

4

3 回答 3

4

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

于 2013-11-20T10:33:34.113 回答
1

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

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

于 2016-08-30T09:47:06.903 回答
0

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

有关以下链接的更多信息

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

于 2013-11-19T00:11:00.560 回答