Guest User

Untitled

a guest
Jul 20th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. require 'redis'
  2. require 'mongo'
  3. require 'benchmark'
  4.  
  5. class MongoVsRedis
  6. ITERATIONS = 100_000
  7. MONGO_CRITERIA = {"_id"=>BSON::ObjectId.from_string("4d2fa98a858d68644662156d")}
  8. REDIS_CRITERIA = "benchmark_test"
  9.  
  10. def initialize
  11. @mongo = Mongo::Connection.new.db('test').collection('incr_test')
  12. @redis = Redis.new
  13.  
  14. @mongo.update(MONGO_CRITERIA, {"$set"=>{"test"=>0}}, {:upsert=>true})
  15. @redis.set(REDIS_CRITERIA, 0)
  16. end
  17.  
  18. def run
  19. puts "REDIS: #{ITERATIONS/redis_increments.real} increments per second"
  20. puts "MONGO: #{ITERATIONS/mongo_increments.real} increments per second"
  21. end
  22.  
  23. def measure(&block)
  24. Benchmark.measure do
  25. ITERATIONS.times { block.call }
  26. end
  27. end
  28.  
  29. def mongo_increments
  30. measure{ @mongo.update(MONGO_CRITERIA, {"$inc"=>{"test"=>1}}) }
  31. end
  32.  
  33. def redis_increments
  34. measure{ @redis.incr REDIS_CRITERIA}
  35. end
  36. end
Add Comment
Please, Sign In to add comment