Python是高性能序列化数据的最佳方法吗?

2024-09-24 02:24:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要序列化一个需要高性能的数据。分离的线程将每秒访问它,并且必须将数据加载到内存中。将有大约1000-10000个类似字典的条目关于用户会话(id,sessid,login date)。有些数据会频繁更新,因为登录时间有一定的时间。在

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

最好的办法是什么?cPickle足够有效吗?或者是元帅?在

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


Tags: 数据内存用户服务器iddate字典序列化
3条回答

使用内存中的真实数据库。不要用pickle、cPickle或marshal之类的东西。在

redis仍然需要序列化任何复杂的python object,因此{}无法解决此问题,除非您将所有数据表示为简单键和简单值。redis不是反序列化解决方案,它只是字符串的数据存储。在任何情况下,redis是速度较慢的选项之一: https://charlesleifer.com/blog/completely-un-scientific-benchmarks-of-some-embedded-databases-with-python/

一个更好的方法可能是使用一些内存缓存(memcached,如果您的需求很简单的话),或者使用一些具有更多特性集的东西,比如redis。在

相关问题 更多 >