码迷,mamicode.com
首页 > Web开发 > 详细

Node.js操作Redis的简单示例

时间:2014-06-22 19:44:17      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:node   node.js   redis   陈小道   示例   

Redis是一个key-value类型的数据库,而key全部都是字符串,value可以是集合、hash、list等等。


Redis是通过MULTI/DISCARD/EXEC/WATCH这4个命令来实现事务功能。对事务,我们必须知道事务安全性是一个非常重要的。


事务提供了一种“将多个命令打包,然后一次性、按顺序执行”的机制,并且在事务执行期间不会中断——意思就是在事务完成之前,客户端的其他命令都是阻塞状态。


var redis = require("redis");
var client = redis.createClient();

client.on("error", function(err) {
	console.log("Error " + err);
});

client.on("connect", runSample);

function runSample() {

	// 设置一个字符串类型的值,返回值:OK
	client.set("string key", "Hello World", function(err, reply) {
		console.log(reply.toString());
	});

	// 获取一个字符串类型的值,返回字:value
	client.get("string key", function(err, reply) {
		console.log(reply.toString());
	});

	// 另外一种方式获取一个字符串类型的值,返回字:value
	var multiCmd = client.multi();
	multiCmd.get("string key");
	multiCmd.exec(function(err, reply) {
		console.log(reply.toString());
	});

	// 设置失效时间
	client.expire('string key', 3);

	// 有效时间验证
	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);

	// 检查一个值在失效之前存留了多长时间
	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);

	// 集合操作
	var key = "set key";
	client.sadd(key, uid);
	client.sadd(key, "a");
	client.sadd(key, "b");
	// 获取key集合中是否包含“1”,如果包含,返回1,否则返回0
	client.sismember(key, "a", showData);

	//client.quit();
}

function writeTTL(err, data) {
	console.log("I live for this long yet: " + data);
}

function showData(err, data) {
	if (err) {
		console.log("err:" + err);
	} else {
		console.log("reply:" + data);
	}
}

参考资料:


Redis命令参考

在 Node.js 中读写 Redis 的数据(失效时间和TTL)

Github node_redis
Redis设计与实现


文档信息

  • 最后修改时间:2014年06月21日 02:07

Node.js操作Redis的简单示例,布布扣,bubuko.com

Node.js操作Redis的简单示例

标签:node   node.js   redis   陈小道   示例   

原文地址:http://blog.csdn.net/cdztop/article/details/32784295

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!