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); } }
参考资料:
在 Node.js 中读写 Redis 的数据(失效时间和TTL)
文档信息
Node.js操作Redis的简单示例,布布扣,bubuko.com
原文地址:http://blog.csdn.net/cdztop/article/details/32784295