当前位置:嗨网首页>书籍在线阅读

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会按照加入的顺序依次执行离线任务队列中的命令。