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


Posted in Javascript onJune 30, 2015

 在开始本文之前请确保安装好 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

 
Javascript 相关文章推荐
jquery validate poshytip 自定义样式
Nov 26 Javascript
jquery获取一组checkbox的值(实例代码)
Nov 04 Javascript
js给页面加style无效果的解决方法
Jan 20 Javascript
js获取时间并实现字符串和时间戳之间的转换
Jan 05 Javascript
在IE8上JS实现combobox支持拼音检索功能
May 23 Javascript
jQuery.datatables.js插件用法及api实例详解
Oct 28 Javascript
Angular2 自定义validators的实现方法
Jul 05 Javascript
分享Bootstrap简单表格、表单、登录页面
Aug 04 Javascript
vuejs点击class变化的实例
Sep 05 Javascript
微信小程序日历组件使用方法详解
Dec 29 Javascript
基于vue-cli3创建libs库的实现方法
Dec 04 Javascript
vue浏览器返回监听的具体步骤
Feb 03 Vue.js
javascript日期计算实例分析
Jun 29 #Javascript
javascript处理a标签超链接默认事件的方法
Jun 29 #Javascript
JavaScript使表单中的内容显示在屏幕上的方法
Jun 29 #Javascript
JavaScript实现级联菜单的方法
Jun 29 #Javascript
node.js读取文件到字符串的方法
Jun 29 #Javascript
JavaScript模拟实现键盘打字效果
Jun 29 #Javascript
JavaScript实现把数字转换成中文
Jun 29 #Javascript
You might like
php 多关键字 高亮显示实现代码
2012/04/23 PHP
PHP Curl出现403错误的解决办法
2014/05/29 PHP
PHP实现获取域名的方法小结
2014/11/05 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
javascript编程起步(第六课)
2007/02/27 Javascript
在网页里看flash的trace数据的js类
2009/01/10 Javascript
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
jquery事件与函数的使用介绍
2013/09/29 Javascript
javascript实现十秒钟后注册按钮可点击的方法
2015/05/13 Javascript
Javascript显示和隐藏ul列表的方法
2015/07/15 Javascript
JavaScript数据结构学习之数组、栈与队列
2017/05/02 Javascript
js评分组件使用详解
2017/06/06 Javascript
你可能不知道的JSON.stringify()详解
2017/08/17 Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
2017/10/18 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
Python实现把回车符\r\n转换成\n
2015/04/23 Python
深入理解python对json的操作总结
2017/01/05 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
详解pandas的外部数据导入与常用方法
2019/05/01 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
爬虫代理池Python3WebSpider源代码测试过程解析
2019/12/20 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
浅谈CSS3特性查询(Feature Query: @supports)功能简介
2017/07/31 HTML / CSS
计算机软件个人的自荐信范文
2013/12/01 职场文书
单位提档介绍信
2014/01/17 职场文书
我们的节日元宵活动方案
2014/08/23 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
傲慢与偏见电影观后感
2015/06/10 职场文书
php 解析非标准json、非规范json
2021/04/01 PHP
为Java项目添加Redis缓存的方法
2021/05/18 Redis