我需要序列化一个需要高性能的数据。分离的线程将每秒访问它,并且必须将数据加载到内存中。将有大约1000-10000个类似字典的条目关于用户会话(id,sessid,login date)。有些数据会频繁更新,因为登录时间有一定的时间。在
这些数据将在python服务器和Django应用程序之间共享。我想用pickle或者它更快的版本cPickle。我还找到了marshal。在
最好的办法是什么?cPickle足够有效吗?或者是元帅?在
编辑: 最重要的是访问时间。它将是一个实时websocket服务器,所以我需要非常低的延迟。是每秒访问一次cPickle数据还是像Redis那样连接到数据库更快?在
使用内存中的真实数据库。不要用pickle、cPickle或marshal之类的东西。在
redis
仍然需要序列化任何复杂的python object
,因此{redis
不是反序列化解决方案,它只是字符串的数据存储。在任何情况下,redis
是速度较慢的选项之一: https://charlesleifer.com/blog/completely-un-scientific-benchmarks-of-some-embedded-databases-with-python/一个更好的方法可能是使用一些内存缓存(memcached,如果您的需求很简单的话),或者使用一些具有更多特性集的东西,比如redis。在
相关问题 更多 >
编程相关推荐