Skip to content

simplonco/ruby-benchmark-redis-mongo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Benchmarking Redis and MongoDB with Ruby Build Status

Objectif : Comparer le temps de requete de toute une table

Pour le test : création de deux bases de données identiques (redis et mongo), peuplées de 1000 entrées utilisateurs et des params (nom, prénom, password, bio)

Outils utilisés

  • gem faker : pour peupler une base de données d'ipsum lorem
  • helper benchmark : natif dans ruby

Redis

  • Redis est une base de donnée clé / valeur optimisé sur la vitesse d'accès. Elle est généré dans la mémoire vive et n'est donc, par défaut, pas persistante mais très rapide.
  • Tutoriel Redis
  • Command cheat sheet

Config

Installer Redis sur votre ordi:

$ wget http://download.redis.io/releases/redis-2.8.4.tar.gz
$ tar xzf redis-2.8.4.tar.gz
$ cd redis-2.8.4
$ make

source

Installer la gem redis :

  • dans votre Gemfile : gem "redis"
  • dans votre application ruby :
require 'redis'
$r = Redis.new(:host => 'localhost', :port => 6379)

Structure

Simple clé: valeur

exemple:

redis.set("mykey", "hello world")
=> "OK"
redis.get("mykey")
=> "hello world"

hash

clé1erniveau: {
    clé2iemeniveau: valeur,
    clé2iemeniveau: valeur,
    clé2iemeniveau: {
        clé3iemeniveau: valeur
    }
}

C'est une autre forme de base de données, axé sur le non-relationnel. Pratique pour stocker des valeurs non-dynamique (exemple des fiches utilisateurs)

Installer Mongo sur votre machine

Gem : gem install mongo

Github

Benchmark

Dans le dossier de l'appli, depuis le terminal :

pry

puis dans pry :

require './populate_task_mongo.rb'

(mets plein de truc dans mongo)

require './bm_all_task_mongo.rb'

(output le temps qu'il met pour tous les récupérer)

Même démarche avec Redis :

require './populate_task_redis.rb'
require './bm_all_task_redis.rb'

puis comparez les temps: normalement, Redis doit être autour de 7 fois plus rapide que Mongo.

About

benchmarking Redis and MongoDB with Ruby

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors