假设我有很多(数百个)大蟒蛇词典。腌制文件大小约为 2Mb。我想使用这个词典中的数据绘制图表,所以我必须将它们全部加载。存储数据的最有效(第一速度,第二内存)方式是什么?也许我应该使用另一个缓存工具?这就是我现在解决此任务的方式:
- 腌制我的每本字典。只是泡菜(字典)
- 将腌制的字符串加载到redis。redis.set(键,字典)
当用户需要图表时,我正在创建数组并用来自 redis 的未腌制数据填充它。就像这样:
array = [] for i in range(iteration_count): array.append(unpickle(redis.get(key)))
现在我有两个问题:内存,导致我的数组非常大,但它并不重要且易于解决。主要问题 - 速度。许多对象的解酸时间超过 0.3 秒。我什至有超过 1 秒的解酸时间的瓶颈。从 redis 获取这个字符串相当昂贵(超过 0.01 秒)。当我有很多对象时,我的用户必须等待很多秒。