在Node.js应用中读写Redis数据库的简单方法

 更新时间:2015年06月30日 09:26:10   投稿:goldensun   我要评论
这篇文章主要介绍了在Node.js应用中读写Redis数据库的简单方法,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 函数并设置一个值,紧接着便读出该值,运行的结果如下:
 

OK
Hello 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: OK
I live: Hello World
I live: Hello World
I live: Hello World
I 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: OK
I live: Hello World
I live for this long yet: 2
I live: Hello World
I live for this long yet: 1
I live: Hello World
I live for this long yet: 0
I expired

 

相关文章

  • jQuery+koa2实现简单的Ajax请求的示例

    jQuery+koa2实现简单的Ajax请求的示例

    这篇文章主要介绍了jQuery+koa2实现简单的Ajax请求的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • NodeJS实现同步的方法

    NodeJS实现同步的方法

    今天小编就为大家分享一篇关于NodeJS实现同步的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 如何用Node写页面爬虫的工具集

    如何用Node写页面爬虫的工具集

    这篇文章主要介绍了如何用Node写页面爬虫的工具集,主要介绍了三种方法,分别是Puppeteer、cheerio和Auto.js,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • Nodejs+express+html5 实现拖拽上传

    Nodejs+express+html5 实现拖拽上传

    文件上传是一个比较常见的功能,传统的选择方式的上传比较麻烦,需要先点击上传按钮,然后再找到文件的路径,然后上传。给用户体验带来很大问题。html5开始支持拖拽上传的需要的api。nodejs也是一个最近越来越流行的技术,这也是自己第一次接触nodejs。
    2014-08-08
  • 一些可能会用到的Node.js面试题

    一些可能会用到的Node.js面试题

    这篇文章主要介绍了一些可能会用到的Node.js面试题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06
  • Node.js使用Angular简单示例

    Node.js使用Angular简单示例

    这篇文章主要介绍了Node.js使用Angular简单示例,如何在Node.js项目中引入AngularJS,这次提供一个非常简单的示例,演示AngularJS里的指令、数据绑定、服务等内容。感兴趣的小伙伴们可以参考一下
    2018-05-05
  • nodejs 如何手动实现服务器

    nodejs 如何手动实现服务器

    这篇文章主要介绍了nodejs 如何手动实现服务器,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Node.js实现JS文件合并小工具

    Node.js实现JS文件合并小工具

    这篇文章主要介绍了Node.js实现JS文件合并小工具的相关资料,需要的朋友可以参考下
    2016-02-02
  • 浅析Node在构建超媒体API中的作用

    浅析Node在构建超媒体API中的作用

    超媒体即Hypermedia,是一种采用非线性网状结构对块状多媒体信息(包括文本、图像、视频等)进行组织和管理的技术。超媒体的概念类似于早期的超文本,超文本的本质是在文本内容加上链接,这样就构成了超文本。超媒体也类似。
    2014-07-07
  • Node.js简单入门前传

    Node.js简单入门前传

    Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。接下来通过本文给大家分享node.js 入门前传,感兴趣的朋友一起看看吧
    2017-08-08

最新评论