2011-08-22 122 views
6

在我当前的项目中,我使用Memcache来存储键值对,但是由于通信发生在我的进程和Memcache之间的套接字上,导致了巨大的延迟。我们使用memcache,因为我们需要存储大量的键值对。但是现在我想在我的流程中将字典存储为全局数据结构。这是一件好事吗?因为字典将存储在进程地址空间中。建议请....memcache和python字典之间的区别

回答

8

通常的原因使用memcached是你想分发高速缓存的多台计算机之间,既具有数据在所有计算机上可用的目标,同时还利用所有机器的存储。如果这些要求不适用于您,并且您只需要一台计算机上的缓存数据,则memcached不会为您提供那么多。在这种情况下,将字典移动到本地进程可能是一个好主意。

1

如果你的数据不是那么大,你可以将你的python字典转储到cPickle.dump或marshal.dump文件中,然后用cPickle.load或marshal.load从文件中重新加载它,如果你需要担心关于磁盘空间,您可以在文件读取/重写期间使用bz2或gzip compress/decompress。

6

我在memcached的“about”页面上写了a thorough answer。我画了照片和一切。

总结:如果你有多个进程,字典不会帮你。如果你有多个进程/计算机,你将会消耗大量的内存,这些内存可以以很好的方式被重用,从而为你节省大量资金,让你获得更多更大的东西。

相关问题