我有嵌套的PHP对象,我希望将它们保存在memcache中。我可以使用json_encode(),json_decode()来存储/检索memcache中的数据吗?
隐含在这个问题中的是,json_encode()函数是否足够“聪明”来内省我的对象,而不需要我显式地定义结构。
如果json_encode()不适合,我如何在memcache中存储我的嵌套对象?
发布于 2009-09-28 12:08:02
为此,请使用serialize/unserialize。
这对于“嵌套对象”很有效。还有两个名为__wakeup()
和__sleep()
的神奇方法,每当序列化/反序列化对象时都会调用这两个方法。在这里,您可以执行其他操作,如:关闭/重新打开文件/db-handles等。这是json所不具备的功能。
Json也可以工作,但使用PHP序列化方法会更好、更快,因为它们就是为此目的而构建的。
发布于 2009-09-29 15:08:12
仅供参考,memcache客户端在操作memcached服务器时会动态序列化/反序列化,因此不需要额外的序列化/反序列化。序列化会带来相当多的开销(如果内存大小是个问题),所以您可以转到支持igbinary的较新的memcached客户端(注意客户端名称末尾的附加d)。
https://stackoverflow.com/questions/1486691
复制相似问题