代码之家  ›  专栏  ›  技术社区  ›  Jesse Reilly

使用ioredis向redis发送任意命令

  •  5
  • Jesse Reilly  · 技术社区  · 7 年前

    是否可以使用ioredis for Node JS向Redis发送任意命令?

    例如,我正在使用新的重新搜索模块,并希望使用以下命令创建索引:

    FT.CREATE test SCHEMA title TEXT WEIGHT 5.0
    

    2 回复  |  直到 4 年前
        1
  •  8
  •   stockholmux    7 年前

    虽然不确定响应编码,但这将使您达到目标:

    var 
        Redis = require('ioredis'),
        redis = new Redis('redis://:[yourpassword]@127.0.0.1');
    
    redis.sendCommand(
        new Redis.Command(
            'FT.CREATE',
            ['test','SCHEMA','title','TEXT','WEIGHT','5.0'], 
            'utf-8', 
            function(err,value) {
              if (err) throw err;
              console.log(value.toString()); //-> 'OK'
            }
        )
    );
    

    如果你愿意搜索 node_redis ,有一个 pre-built RediSearch plugin 它支持所有重新搜索命令。(披露:我写的)

        2
  •  4
  •   Zack    7 年前

    redis.call('M.CUSTOMCMD', ['arg1', 'arg2', 'arg3'], 
    function(err, value) { /* ... */ });
    
    // if you need batch custom/module commands
    redis.multi([
      ['call', 'M.CUSTOMCMD', 'arg1', 'arg2', 'arg3'],
      ['call', 'M.OTHERCMD', 'arg-a', 'arg-b', 'arg-c', 'arg-d']
    ])
    .exec(function(err, value) { /* ... */ });