在getting some help关于如何测量memcached对象的实际/实际大小以防止它们变得太大之后,我已经考虑了下一步-实现一个分片/分割函数,该函数在存储时透明地将大对象分割成小块,并在请求它们时将它们粘合在一起作为一个大对象。基本上,它应该在幕后自动完成所有需要做的事情,以保持memcached的快乐。
处理数组、对象或任何类型的对象的拆分的合适方法是什么?
我在我的webapp中使用PHP,但对于这种情况,我会很高兴使用一些psuedo-code的通用方法来为我指明正确的方向。
非常感谢!
发布于 2010-06-19 04:28:23
在另一个问题中,serialize用于测量对象的存储长度。如果你要达到对象大小的默认1兆限制,并且你需要拆分,你可以简单地使用serialize,split the resulting string into appropriate chunks,然后存储块。稍后,您可以将它们重新组合在一起,然后对结果执行unserialize操作。
话虽如此..。认真地说,如果序列化的对象是一个meg大小,那么您可能需要重新考虑存储内容的方式。PHP的序列化可能有点慢(比方说,与json_encode相比),在其中抛出一兆或更多的数据不太可能是做任何事情的最好或最快的方法。
如果你正在实现memcached和分片作为一种性能机制,我强烈建议你现在就停止,除非你已经使用了像Xdebug这样的工具来分析你的代码,并且已经消除了所有其他的瓶颈。
https://stackoverflow.com/questions/3072719
复制相似问题