Integrate Redis Into a Node.js Project
The Redis client for Node.js is pretty straightforward and easy to get up and running. Here are a few code snippets that might save you some time.
Join the DZone community and get the full member experience.
Join For FreeIn this article we are going to add caching to our Node.js application using Redis.
We will install the recommended client for node.js as mentioned on the official Redis page.
npm install redis --save
Next we shall create our client connection
var redis = require('redis')
var hostname = '127.0.0.1'
var port = '6379'
var password = 'yourpassword'
var client = redis.createClient(port,hostname,{no_ready_check: true})
client.auth(password)
client.on('connect', function() {
console.log('Client was connected')
})
The password provided on auth will be stashed and used on every connect.
Let’s see some basic actions:
SMEMBERS actions
client.sadd('aset', 2)
client.sadd('aset', 1)
client.sadd('aset', 5)
client.smembers('aset',function(err,reply) {
console.log(reply)
})
Get and Set actions
client.set('akey', "This is the value")
client.get('akey',function(err,reply) {
console.log(reply)
})
Hash value actions
client.hset('hashone', 'fieldone', 'some value');
client.hset('hashone', 'fieldtwo', 'another value');
var hash = 'hashone'
client.hkeys(hash, function (err, fields) {
fields.forEach(function(field,i) {
console.log('The field is '+field)
client.hget(hash,field,function (err, value) {
console.log('The content is '+value)
})
})
});
List actions
client.rpush(['mylist', 'firstItem', 'secondItem'], function(err, listsize) {
console.log(listsize)
});
client.lrange('mylist',0,-1,function(err,values) {
console.log(values)
})
client.lpop('mylist',function(err,value) {
console.log('Got '+value)
})
Conclusion
The Redis client for Node.js is pretty straightforward and easy to get started.
Keep in mind that one connection is adequate. Redis is single threaded therefore there is no need for opening multiple connections.
You can refer to the github page for more examples and usage showcases.
Published at DZone with permission of Emmanouil Gkatziouras, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments