新手问题 求教选用什么缓存?

kunou · 2015年05月12日 · 最后由 kunou 回复于 2015年05月12日 · 1763 次阅读

问题场景:

运行软件 A 时,如果软件崩溃了,那么就会把崩溃文件(zip 包)post 到服务器上,服务器上有个 php 脚本(必须使用 php,因为在软件里写死了)接受数据,然后对 zip 解压进行崩溃分析,由于崩溃比较多(几千万都有可能,几十万是常态),所以需要把传上来的崩溃先保存在起来,慢慢分析。

现在的做法:

把传上来的崩溃包放在本地,然后把文件路径,上传时间等信息存储在数据库里,还有个字段——标识是否已经分析了。 崩溃分析程序(多线程)定时去看看有没有没有分析的 zip 包,根据标识字段。

现在我想弄个缓存来存储上传的 zip 包信息,由于接受程序是用 php 写的,所以想找个合适的缓存,据说可以使用 redis。

小白一枚,不知道这个帖子放哪合适,又经常逛 ruby-china,所以来万能的 ruby china 求助。 望多多包涵,多谢多谢~~

膜拜小白

可以写入 redis,用一个 List 存储。前提是你的信息需要序列化进 redis。

谢谢一楼二楼的回复 刚刚了解了下,准备看看 beanstalkd 先。

必须使用 php,因为在软件里写死了

就算程序里面写死了提交到 http://xxx.com/xx.php 服务端也是可以用其他方式实现的,你只需要把 URL 路由特别做成 .php 就好了。

然后

你完全没必要用什么缓存、用什么 Redis(在你不懂它们适合的场景的情况下),那些 zip 的文件信息、路径什么的,你完全可以放心的存到数据库,比如 MySQL 里面。

#4 楼 @huacnlee 程序里写死成这样“xxx.com/xyz.php?software=???",???一起其他信息。 现在就是存储在 mysql 里的,OK,这块逻辑那基本就不变了,就不用我去弄什么缓存了。 原来可以这样,膜拜大神。 那我现在的问题就是了解如何把url路由特别做成xyz.php了

#5 楼 @kunou 搜索 Nginx URL Rewrite

其实 Rails 的路由也是可以直接支持 .php 的,比如 https://ruby-china.org/huacnlee.php

#6 楼 @huacnlee 非常谢谢,rewrite 这块 ok 了。 url 为 test.xyz.com/xxx.php?software=mmm&version=123456 那么我如何获取这个 URL 呢,用于把 software 和 version 信息保存到 DB 中 以及 POST 上来的 zip 数据 有了 nginx,莫非我还要弄个 ruby web 服务器吗?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号