2012-04-08 72 views
2

我需要序列化一个需要高性能的数据。分离的线程将每秒访问它并且必须将数据加载到内存。将会有大约1000 - 10000条有关用户会话的字典条目(ID,sessid,登录日期)。有些数据会经常更新,因为登录时间有一段时间。Python - 以高性能序列化数据的最佳方式?

这些数据将在python服务器和Django应用程序之间共享。我想用pickle或者更快的版本cPickle。我还发现marshal

这样做的最好方法是什么? cPickle是否足够高效?或者也许是元帅?

编辑: 访问时间非常重要。这将是一个实时websocket服务器,所以我需要非常低的延迟。每秒访问一次cPickle数据还是像Redis连接到数据库一样快?

回答

4

一个更好的方法可能是使用一些内存中的缓存 - memcached,如果您的需求很简单 - 或者更多的功能,比如redis。

+0

与Redis相比,cPickle将会非常慢 - 这是为速度而设计的。 – 2013-01-17 07:10:27

3

在内存中使用真实的数据库。不要使用泡菜,cPickle或元帅,或类似的东西。

相关问题