Symfoware

Symfowareについての考察blog

node.js + Redisで一括処理(pipline, multi)

node.jsからRedisの操作を試しています。
node.js Redisに接続してデータの登録、取得、削除
node.js + Redisでリストの操作(rpush, lrange, ltrim)

複数のコマンドを実行するpipline処理について調べてみました。


multi



redis - a node.js redis client

他のライブラリだと「pipline」という名称がよく使用されるのですが、
このライブラリでは「multi」と表現しているようです。


  1. 'use strict'
  2. const redis = require('redis')
  3. // 接続情報
  4. const config = {
  5.     host: '127.0.0.1',
  6.     port: 6379
  7. }
  8. // 接続
  9. const client = redis.createClient(config)
  10. // 一括処理
  11. client.multi()
  12.     .rpush('key', 'value-1')
  13.     .rpush('key', 'value-2')
  14.     .set('hoge', 'piyo')
  15.     .lrange('key', 0, -1)
  16.     .get('hoge')
  17.     .exec((err, replies) => {
  18.         replies.forEach((item,i ) => {
  19.             console.log(`result:${i}`)
  20.             console.log(item)
  21.         })
  22.     })
  23. client.quit()



「exec」でそれまで貯めていたコマンドを一括実行。
結果は、実行順に配列に格納されます。

実行結果


$ node index.js
result:0
1
result:1
2
result:2
OK
result:3
[ 'value-1', 'value-2' ]
result:4
piyo



「pipline」というキーワードで探していたため、なかなかこの機能を
見つけられなかったのでメモ。


関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2018/06/28(木) 23:37:15|
  2. node.js
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Node.jsからMySQLに接続する | ホーム | node.js + Redisでリストの操作(rpush, lrange, ltrim)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
https://symfoware.blog.fc2.com/tb.php/2221-2492cfca
この記事にトラックバックする(FC2ブログユーザー)