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

时间:2013-10-09 03:19:36

标签: python serialization python-3.x redis

假设我有很多(数百个) python词典。腌制文件大小约为2Mb。我想使用这个词典中的数据绘制图表,所以我必须加载它们。存储数据的最有效(第一速度,第二存储器)方式是什么?可能是我应该使用另一种缓存工具?这就是我现在如何解决这个问题:

  1. 每个字典都泡菜。只是泡菜(字典)
  2. 将酸洗的绳子装入redis。 redis.set(key,dict)
  3. 当用户需要图表时,我正在创建数组并用redis中的unpickled数据填充它。就像那样:

    array = []
    
    for i in range(iteration_count):
    
        array.append(unpickle(redis.get(key)))
    
  4. 现在我有两个问题:带内存,导致我的阵列非常大,但它不重要且易于解决。主要问题 - 速度。许多物体破坏超过0.3秒。我甚至有超过1秒的破解时间的瓶颈。从redis获得这个字符串相当昂贵(超过0.01秒)。当我有很多对象时,我的用户必须等待很长时间。

1 个答案:

答案 0 :(得分:1)

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

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

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