json_encode和嵌套对象

时间:2009-09-28 12:02:37

标签: php memcached json

我有嵌套的PHP对象,我想在memcache中保存。我可以使用json_encode(),json_decode()来存储/检索来自memcache的数据吗?

问题隐含的是json_encode()函数是否“足够聪明”以反省我的对象而不必明确定义结构。

如果json_encode()不是可行的方法,我如何将我的嵌套对象存储在memcache中?

2 个答案:

答案 0 :(得分:4)

使用serialize / unserialize

这适用于“嵌套对象”。还有两种称为__wakeup()__sleep()的魔术方法,只要序列化/反序列化一个对象,就会调用它们。在这里,您可以执行其他操作,例如:关闭/重新打开文件/ db-handles等。这是json无法获得的。

Json也可以工作,但是使用PHP序列化方法会更好更快,因为它们是为此目的而构建的。

答案 1 :(得分:2)

仅供参考,当使用memcached服务器运行时,memcache客户端会动态序列化/反序列化,因此不需要额外的序列化/反序列化。有一些开销伴随着序列化(如果内存大小有问题),所以你可以转到支持igbinary的新的memcached客户端(注意客户端名称末尾的附加d)。

相关问题