如何使用python和redis存储简单对象?

如何使用python和redis存储简单对象?,python,serialization,python-3.x,redis,Python,Serialization,Python 3.x,Redis,假设我有很多(数百个)大型python字典。pickle文件大小约为2Mb。我想使用这些字典中的数据绘制图表,所以我必须全部加载它们。存储数据最有效的方式是什么(第一速度,第二内存)?也许我应该使用另一个缓存工具?这就是我现在解决这项任务的方法: 把我字典里的每一本书都删掉。只是泡菜(dict) 将pickle字符串加载到redis。redis.set(键,dict) 当用户需要图表时,我正在创建数组,并用redis中未勾选的数据填充它。就这样, array = [] for i in ran

假设我有很多(数百个)大型python字典。pickle文件大小约为2Mb。我想使用这些字典中的数据绘制图表,所以我必须全部加载它们。存储数据最有效的方式是什么(第一速度,第二内存)?也许我应该使用另一个缓存工具?这就是我现在解决这项任务的方法:

  • 把我字典里的每一本书都删掉。只是泡菜(dict)
  • 将pickle字符串加载到redis。redis.set(键,dict)
  • 当用户需要图表时,我正在创建数组,并用redis中未勾选的数据填充它。就这样,

    array = []
    
    for i in range(iteration_count):
    
        array.append(unpickle(redis.get(key)))
    

  • 现在我有两个问题:内存,因为我的数组非常大,但它并不重要,也不容易解决。主要问题是速度。许多对象取消闪烁时间超过0.3秒。我甚至有超过1秒的解锁时间的瓶颈。从redis获得这个字符串相当昂贵(超过0.01秒)。当我有很多对象时,我的用户必须等待很长时间。

    如果可以假设您是在web应用程序的上下文中询问,并且您是在浏览器中显示图表,我绝对建议将您的字典存储为redis中的JSON

    同样,您没有提供太多关于应用程序的详细信息,但我以前已经在非常大的数据集上实现了图表绘制(在几分钟内每秒100000个传感器数据点)。为了在呈现数据集时提高性能,我将每种类型的数据存储到它们自己的字典或“系列”中。此策略允许您根据需要仅渲染部分数据

    如果您能分享更多关于您的特定应用程序的信息,我们可能会提供更多帮助