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

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

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

  ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

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 函数并设置一个值,紧接着便读出该值,运行的结果如下:

  ?

1
2

OK
Hello World

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

  ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

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 项目中谨慎使用定时器。

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

  ?

1
2
3
4
5

Reply: OK
I live: Hello World
I live: Hello World
I live: Hello World
I expired

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

  ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

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);
}

  运行结果:

  ?

1
2
3
4
5
6
7
8

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

时间: 2024-10-26 23:06:30

在Node.js应用中使用Redis的方法简介的相关文章

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

  这篇文章主要介绍了在Node.js应用中读写Redis数据库的简单方法,Redis是一个内存式高速数据库,需要的朋友可以参考下 在开始本文之前请确保安装好 Redis 和 Node.js 以及 Node.js 的 Redis 扩展 -- node_redis 首先创建一个新文件夹并新建文本文件 app.js 文件内容如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 var redis = require("redis") ,

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

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

Node.js编程中客户端Session的使用详解

  这篇文章主要介绍了Node.js编程中客户端Session的使用详解,是Node.js入门学习中的基础知识,需要的朋友可以参考下 静态网站很容易扩展.你只需要全部缓存,不需要考虑从不同服务器组合有状态的内容给用户. 可惜,大多数Web应用使用有状态的内容提供个性化体验.如果你的应用可以登录,就需要记住用户的Session.经典的处理方法是客户端设置包含随机唯一Session标识的Cookie,被标识的Session数据保存到服务端. 扩展有状态服务 当扩展服务的时候,你肯定有三种选择: 不同

使用Raygun对Node.js应用进行错误处理的方法

         这篇文章主要介绍了使用Raygun对Node.js应用进行错误处理的方法,Node.js是一款用于服务器端的JavaScript框架,需要的朋友可以参考下              用我们的 raygun4node 包,能提供一种把您的Node.js错误发送给Raygun的便利办法. 它可以很容仪的使用 npm 安装: ? 1 npm install raygun          其能给您提供一个raygun客户端,您可以用它来配置您的API key,并且可以用来手动发送错误

node.js读取文件到字符串的方法

  本文实例讲述了node.js读取文件到字符串的方法.分享给大家供大家参考.具体分析如下: Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设你是在POSIX环境下运行它Linux 或 Mac OS X. 主要代码如下: ? 1 2 3 var fs = require('fs'); var file = fs.readFileSync(path, "utf8"); console.log(file);

js正则表达式中test,exec,match方法的区别介绍

 本篇文章主要是对js正则表达式中test,exec,match方法的区别进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 js正则表达式中test,exec,match方法的区别说明   test  test 返回 Boolean,查找对应的字符串中是否存在模式. var str = "1a1b1c"; var reg = new RegExp("1.", ""); alert(reg.test(str)); // true     e

node.js读取文件到字符串的方法_node.js

本文实例讲述了node.js读取文件到字符串的方法.分享给大家供大家参考.具体分析如下: Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设你是在POSIX环境下运行它Linux 或 Mac OS X. 主要代码如下: var fs = require('fs'); var file = fs.readFileSync(path, "utf8"); console.log(file); 希望本文所述对大家的

js 字符串中查找字符串实现方法

js 字符串中查找字符串实现方法 最简单的方法就是利用indexof来实例,网页特效中indexof函数方法返回一个整数值,指出 string 对象内子字符串的开始位置.如果没有找到子字符串,则返回 -1.如果 startindex 是负数,则 startindex 被当作零.如果它比最大的字符位置索引还大,则它被当作最大的可能索引. indexof函数是从左向右执行查找.否则,该方法与 lastindexof 相同. var cts = "bbltext"; if(cts.index

js正则表达式中test,exec,match方法的区别说明_javascript技巧

js正则表达式中test,exec,match方法的区别说明 test test 返回 Boolean,查找对应的字符串中是否存在模式.var str = "1a1b1c";var reg = new RegExp("1.", "");alert(reg.test(str)); // true exec exec 查找并返回当前的匹配结果,并以数组的形式返回.var str = "1a1b1c";var reg = new R