AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > JavaScript

在Node.js应用中使用Redis的方法简介

51自学网 http://www.wanshiok.com
Node,Redis

 在开始本文之前请确保安装好 Redis 和 Node.js 以及 Node.js 的 Redis 扩展 —— node_redis

首先创建一个新文件夹并新建文本文件 app.js 文件内容如下:
 

var redis = require("redis")  , client = redis.createClient(); client.on("error", function (err) {  console.log("Error " + err);}); client.on("connect", runSample); function runSample() {  // Set a value  client.set("string key", "Hello World", function (err, reply) {    console.log(reply.toString());  });  // Get a value  client.get("string key", function (err, reply) {    console.log(reply.toString());  });}


当连接到 Redis 后会调用 runSample 函数并设置一个值,紧接着便读出该值,运行的结果如下:
 

OKHello World

 
我们也可以使用 EXPIRE 命令来设置对象的失效时间,代码如下:
 

var redis = require('redis')  , client = redis.createClient(); client.on('error', function (err) {  console.log('Error ' + err);}); client.on('connect', runSample); function runSample() {  // Set a value with an expiration  client.set('string key', 'Hello World', redis.print);  // Expire in 3 seconds  client.expire('string key', 3);   // This timer is only to demo the TTL  // Runs every second until the timeout  // occurs on the value  var myTimer = setInterval(function() {    client.get('string key', function (err, reply) {      if(reply) {        console.log('I live: ' + reply.toString());      } else {        clearTimeout(myTimer);        console.log('I expired');        client.quit();      }    });  }, 1000);}


注意: 上述使用的定时器只是为了演示 EXPIRE 命令,你必须在 Node.js 项目中谨慎使用定时器。

运行上述程序的输出结果是:
 

Reply: OKI live: Hello WorldI live: Hello WorldI live: Hello WorldI expired

 
接下来我们检查一个值在失效之前存留了多长时间:
 

var redis = require('redis')  , client = redis.createClient(); client.on('error', function (err) {  console.log('Error ' + err);}); client.on('connect', runSample); function runSample() {  // Set a value  client.set('string key', 'Hello World', redis.print);  // Expire in 3 seconds  client.expire('string key', 3);   // This timer is only to demo the TTL  // Runs every second until the timeout  // occurs on the value  var myTimer = setInterval(function() {    client.get('string key', function (err, reply) {      if(reply) {        console.log('I live: ' + reply.toString());        client.ttl('string key', writeTTL);      } else {        clearTimeout(myTimer);        console.log('I expired');        client.quit();      }    });  }, 1000);} function writeTTL(err, data) {  console.log('I live for this long yet: ' + data);}

运行结果:
 

Reply: OKI live: Hello WorldI live for this long yet: 2I live: Hello WorldI live for this long yet: 1I live: Hello WorldI live for this long yet: 0I expired


Node,Redis  
上一篇:在Mac OS下使用Node.js的简单教程  下一篇:浅析Node.js中使用依赖注入的相关问题及解决方法