redis比Postgres快多少?

时间:2014-03-26 05:08:15

标签: ruby-on-rails postgresql heroku redis benchmarking

经过网上的一些研究,我发现两者之间没有太多的基准比较。我找到了一个redis vs mongodb :( How much faster is Redis than mongoDB?)。

根据我以下非常不科学的测试,在rails中运行两个简单的非相等代码,我猜测写的内容大致相同,但redis的读取速度大约快2倍。考虑到我的观点通常是50ms~150ms,没有像我预期的那么大的速度优势。

我的问题是,是否有其他基准可以给我一个关于这两个的“粗略”想法?使用两者中的约定配置,甚至可以针对heroku基本dyno及其postgres服务进行测试?谢谢!

##NOTICE: #follow is implemented with Redis. #public is just a postgres ActiveRecord property.
[93] pry(main)> Benchmark.measure{ 100.times { c.public = !c.public; c.save; c.public = !c.public; c.save}}
=> #<Benchmark::Tms:0x007faeb3c814f0
 @cstime=0.0,
 @cutime=0.0,
 @label="",
 @real=0.743117,
 @stime=0.03000000000000025,
 @total=0.6000000000000005,
 @utime=0.5700000000000003>
[94] pry(main)> Benchmark.measure{ 100.times { u.unfollow! u2; u.follow! u2 }}
=> #<Benchmark::Tms:0x007faeb1409c20
 @cstime=0.0,
 @cutime=0.0,
 @label="",
 @real=0.988483,
 @stime=0.14000000000000057,
 @total=0.8800000000000026,
 @utime=0.740000000000002>
[95] pry(main)> Benchmark.measure{ 100.times { u.follows? u2 }}
=> #<Benchmark::Tms:0x007faeb2f22ea8
 @cstime=0.0,
 @cutime=0.0,
 @label="",
 @real=0.045072,
 @stime=0.009999999999999787,
 @total=0.06000000000000405,
 @utime=0.05000000000000426>
[96] pry(main)> Benchmark.measure{ 100.times { Course.first.public? }}
=> #<Benchmark::Tms:0x007faeac97b8c0
 @cstime=0.0,
 @cutime=0.0,
 @label="",
 @real=0.11811,
 @stime=0.0,
 @total=0.09000000000000341,
 @utime=0.09000000000000341>

1 个答案:

答案 0 :(得分:0)

Redis是一个键值存储数据库,Postgres是一个RDBMS。键值数据库允许数据存储无模式但不存储关系数据库。

这两种方法各有利弊。要进一步阅读,您可以查看现有的stackoverflow post