Redis et Nodejs facile avec Nohm
En faisant des recherches sur Redis et Node.js, jâĂ©tais tombĂ© sur un projet intĂ©ressant: Nohm https://github.com/maritz/nohm qui est une sorte dâORM pour Redis. Alors cela cache Ă©normĂ©ment le rĂ©el fonctionnement de Redis, je ne sais pas encore Ă quel point câest performant ou pas, il faudra que âje mĂšne lâenquĂȘteâ mais je trouve ce framework bien sympathique. Je vous en parle donc un petit peu, en fait je vous explique ce que je suis en train de mettre en Ćuvre pour aller plus loin dans mes tests.
Plateforme
Pré-requis :
- node.js
- npm
- redis
Ensuite dans un répertoire, créez un fichier package.json
avec le contenu suivant:
{
"name": "play-with-redis",
"description" : "play-with-redis",
"version": "0.0.0",
"dependencies": {
"nohm": "0.9.5",
"Faker": "0.7.2",
"redis": "0.10"
}
}
Pourquoi Faker? Je veux me créer une base facilement et Faker permet de générer des noms, emails, etc. ⊠de façon aléatoire (https://github.com/marak/Faker.js/). Nous avons aussi besoin du driver redis pour node.js : https://github.com/mranney/node_redis.
Tapez la commande :
npm install
Patientez, câest prĂȘt.
âRemplirâ la base
Créez un fichier populate.js
Ă la racine avec le contenu suivant:
Déclarez les dépendances et variables:
Ne commencez les traitements quâune fois la base connectĂ©e:
DĂ©finir un model (câest la partie intĂ©ressante):
Remarque: le fait de préciser pour une propriété index: true
permettra de faire des recherches sur la propriété (champ) considéré.
Mettre des données dans la base:
Vous nâavez plus quâĂ lancer, au bout de quelques instants vous disposez dâun jeu dâessai de donnĂ©es.
Interroger la base
Créez un fichier query.js
avec le contenu suivant:
Déclarez les dépendances et variables:
Comme prĂ©cĂ©dement, on attend que la base soit connectĂ©â, et ensuite on dĂ©finit notre modĂšle:
Ensuite je veux tous les users
qui habitent 'England'
et puis afficher le 346 Ăšme avec ses infos:
Remarque: UserModel.find()
va trouver la liste des ids (clés) correspondants à la recherche, ensuite, nohm.factory('User', id_user, function (err) {})
permet de retrouver les donnĂ©es de lâutilisateur par son id.
Jâaime beaucoup le principe, mais Ă lâheure quâil est je ne sais pas si câest utilisable tel quel en production. Il faudrait aussi voir de quelle maniĂšre câest implĂ©mentĂ© (anti-patterns ou pas).
Il existe aussi une version en Java, mais qui ne semble plus ĂȘtre maintenue depuis un moment : https://github.com/xetorthio/johm, et il semblerait que lâidĂ©e de dĂ©part viennent dâici https://github.com/soveran/ohm (en Ruby).
Je vais me monter une stack web complÚte pour utiliser Nohm et je vous ferais part de mes résultats.
Vous trouverez les code dâexemples par ici https://github.com/js-experiments/play-with-redis.
Bon WE.
Demain, Angular Ă nouveau âŠ
Tweet