Node.js操作Redis的简单示例

来源:互联网 发布:淘宝怎么定时上架软件 编辑:程序博客网 时间:2024/05/05 06:24

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() {// 设置一个字符串类型的值,返回值:OKclient.set("string key", "Hello World", function(err, reply) {console.log(reply.toString());});// 获取一个字符串类型的值,返回字:valueclient.get("string key", function(err, reply) {console.log(reply.toString());});// 另外一种方式获取一个字符串类型的值,返回字:valuevar 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,否则返回0client.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设计与实现

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名 |  Creative Commons BY-NC-ND 3.0
0 0
原创粉丝点击