Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I issue HGET/GET command for Redis Database via Node.js?

I am using Node.js and a Redis Database . I am new to Redis .

I am using the https://github.com/mranney/node_redis driver for node.

Initialization code -

var redis = require("redis"),
client = redis.createClient();

I tried setting up some key value pairs -

client.hset("users:123" ,"name", "Jack");

I wish to know I can get the name parameter from Redis via Node .

I tried

var name = client.hget("users:123", "name");  //returns 'true'

but it just returns 'true' as the output. I want the value ( i.e - Jack ) What is the statement I need to use ?

like image 217
geeky_monster Avatar asked May 14 '12 13:05

geeky_monster


1 Answers

This is how you should do it:

client.hset("users:123", "name", "Jack");
// returns the complete hash
client.hgetall("users:123", function (err, obj) {
   console.dir(obj);
});

// OR

// just returns the name of the hash
client.hget("users:123", "name", function (err, obj) {
   console.dir(obj);
});

Also make sure you understand the concept of callbacks and closures in JavaScript as well as the asynchronous nature of node.js. As you can see, you pass a function (callback or closure) to hget. This function gets called as soon as the redis client has retrieved the result from the server. The first argument will be an error object if an error occurred, otherwise the first argument will be null. The second argument will hold the results.

like image 154
Thomas Fritz Avatar answered Sep 22 '22 23:09

Thomas Fritz