memcache与Python字典的区别
在我现在的项目中,我使用Memcache来存储键值对,但由于我的程序和Memcache之间是通过网络套接字进行通信,这导致了很大的延迟。我们选择使用Memcache是因为我们需要存储大量的键值对。但现在我想把字典作为一个全局数据结构存储在我的程序中。这这样做好吗?因为字典会存储在程序的地址空间里。请给点建议……
3 个回答
1
如果你的数据量不大,你可以直接把你的Python字典保存到文件里,使用cPickle.dump或marshal.dump这两个方法,然后再用cPickle.load或marshal.load从文件里读取回来。如果你担心占用太多磁盘空间,可以在读写文件的时候用bz2或gzip来压缩和解压缩。
7
我在memcached的“关于”页面上写了一个详细的回答,还画了图,内容很丰富。
简单来说:如果你有多个进程,字典就没什么用。如果你有多个进程或者电脑,你会浪费很多本可以重复利用的内存,这样不仅浪费钱,还会让你失去更多可以处理的大数据。
11
通常使用memcached的原因是你想把缓存分散到多台机器上,这样可以让所有机器都有数据可用,同时也能利用所有机器的存储空间。如果你不需要这些功能,只是在一台机器上使用缓存数据,那么memcached对你来说就没什么太大用处。在这种情况下,把数据字典放到你本地的程序里可能是个不错的选择。