为我的bug跟踪应用程序使用redis / nosql而不是postgres会有什么好处吗?

时间:2010-09-25 17:40:54

标签: nosql rdbms redis

我正在制作一个网站来记录用户可以提交错误的浏览器错误,用户可以向这些错误提交解决方案/解决方法。我会有类似的东西:

  • 错误的屏幕截图
  • 浏览器呈现引擎
  • 浏览器
  • 每个错误的标签
  • 错误类别(css,html,js)
  • 每个bug的解决方案,包括代码段
  • 通常的日期/时间,作者,修改日期

由于我刚刚开始这个网站,我真的不需要缩小比赛。我只是想知道数据是否更适合像redis这样的东西,或者我应该坚持使用rdbms(在我的情况下,Postgres)?

2 个答案:

答案 0 :(得分:2)

错误信息围绕产品和用户展开,而这些数据受益于关系结构。 (您可以查看一系列现有的bug跟踪器示例)。如果你确实发现你需要分层数据结构(比如redis倾斜),传统的sql中有几种不同的树结构实现,而postgres提供了一些额外的结构,比如数组和ltree结构。此外,Postgres有相当成熟的存储二进制数据(如屏幕截图)和大型文本数据的方法,这些方法取决于您的nosql引擎可能不会像您希望的那样稳定。我想学习另一个系统可能有一些好处(otoh,其他人认为更好地学习现有工具更有益),但从技术角度来看,并没有真正的优势。

答案 1 :(得分:1)

MySQL以及Postgress开发团队不建议在数据库中存储图像和二进制数据。

相反,您可以将图像存储在某个目录中,文件名可以是数据库中的ID,也可以是md5(ID +密码),如果您担心人们可能会“破解”系统并看到他们看不到的图像。 / p>

这样做,您将受益于较小的数据库,也可以更快地访问 - 您可以直接使用您的网络服务器提供图像。

我是Redis的忠实粉丝,但这个项目对我来说更像是RDBMS。