19-简便用法
5.4.3 简便用法
1. HMSET/HGETALL
ioredis同样支持在 HMSET 命令中使用对象作参数(对象的属性值只能是字符串),相应的 HGETALL 命令会返回一个对象。
2.事务
事务的用法如下:
var multi = redis.multi();
multi.set('foo', 'bar');
multi.sadd('set', 'a');
mulit.exec(function (err, replies) {
// replies是一个数组,依次存放事务队列中命令的结果
console.log(replies);
});
或者使用链式调用:
redis.multi()
.set('foo', 'bar')
.sadd('set', 'a')
.exec(function (err, replies) {
console.log(replies);
});
3.“发布/订阅”模式
Node.js使用事件的方式实现“发布/订阅”模式。现在创建两个连接分别充当发布者和订阅者:
var pub = new Redis();
var sub = new Redis();
然后让 sub 订阅 chat 频道并在订阅成功后发送一条消息:
sub.subscribe('chat', function () {
pub.publish('chat', 'hi!');
});
定义当接收到消息时要执行的回调函数:
sub.on('message', function (channel, message) {
console.log('收到' + channel + '频道的消息:' + message);
});
运行后可以看到打印的结果:
$ node testpubsub.js
收到chat频道的消息:'hi!'
补充知识
在ioredis中建立连接的过程也是异步的,执行
redis = new Redis()后连接并没有立即建立完成。在连接建立完成前执行的命令会被加入到离线任务队列中,当连接建立成功后ioredis会按照加入的顺序依次执行离线任务队列中的命令。