Python 动态创建文件的缓存系统?
我有一个web服务器,它以多种格式(pdf和doc文件)动态创建各种报告。这些文件需要相当多的CPU才能生成,而且两个人使用相同的输入创建相同的报告的情况非常常见 投入:Python 动态创建文件的缓存系统?,python,Python,我有一个web服务器,它以多种格式(pdf和doc文件)动态创建各种报告。这些文件需要相当多的CPU才能生成,而且两个人使用相同的输入创建相同的报告的情况非常常见 投入: 以字符串形式输入的原始数据(方程式、数字和 单词列表),任意长度,几乎99%将少于200个单词左右 报表创建工具的版本 当用户试图生成报告时,我想检查是否已经存在具有给定输入的文件,如果已经存在,则返回指向该文件的链接。如果文件不存在,那么我想根据需要生成它 现在已经有了什么解决方案?我以前缓存过简单的http请求,但密钥
- 以字符串形式输入的原始数据(方程式、数字和 单词列表),任意长度,几乎99%将少于200个单词左右
- 报表创建工具的版本
谢谢大家。这就是Apache的用途 创建一个包含报告的目录 将Apache配置为服务于该目录中的文件 如果报告存在,则重定向到Apache将提供服务的URL 否则,报告不存在,所以创建它。然后重定向到Apache将提供的URL
没有“散列”。您有一个键(“一个字符串(方程式、数字和单词列表),任意长度,几乎99%将小于200个单词”)和一个值,这是一个文件。不要把时间浪费在杂烩上。你只有一把长钥匙 你可以用一个“slug”来压缩这个键:去掉标点符号,用u替换空格,诸如此类的东西 您应该创建一个内部代理键,它是一个简单的整数
您只需将一个长键转换为一个“报告”,该报告要么作为文件存在,要么将作为文件创建 通常的做法是使用反向代理,例如或您使用的是哪种web框架?有些框架内置了缓存功能。但是,您建议如何将输入字符串映射到文件?哈希对于小的字符串会有太多的冲突,不是吗?“比尔,考虑使用Sh256或哈希的任何东西,计算出损坏的成本/ $$乘以碰撞的可能性。如果生成的数字不够小,请使用更大的散列。重复冲洗。有时候你根本无法忍受散列冲突——比如医疗数据之类的。在这种情况下,永远不要依赖于一个有