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)
- gem faker : pour peupler une base de données d'ipsum lorem
- helper benchmark : natif dans ruby
- 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
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
$ makeInstaller la gem redis :
- dans votre Gemfile :
gem "redis" - dans votre application ruby :
require 'redis'
$r = Redis.new(:host => 'localhost', :port => 6379)Simple clé: valeur
exemple:
redis.set("mykey", "hello world")
=> "OK"
redis.get("mykey")
=> "hello world"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
Dans le dossier de l'appli, depuis le terminal :
prypuis 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.