Node-redis: рдиреЛрдбрдЬреЗрдПрд╕ рдореЗрдВ рд▓реБрдЖ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдбрд┐рд╕ eval рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рдЬреВрди 2017  ┬╖  1рдЯрд┐рдкреНрдкрдгреА  ┬╖  рд╕реНрд░реЛрдд: NodeRedis/node-redis

рд░реЗрдбрд┐рд╕ рдореЗрдВ рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реАрдПрд▓рдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реБрдЖ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ

    $ redis-cli --eval debug_script.lua key1 key2 key3 key4 , arg1 arg2

рддреЛ, рдореЗрд░реА рд▓реБрдЖ рд▓рд┐рдкрд┐ 4 рдХреБрдВрдЬреА рдФрд░ 2 рддрд░реНрдХ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИред

рдЕрдм рдореИрдВ рдЙрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ Node.js рдореЗрдВ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореИрдВ рдЕрдкрдиреЗ рдРрдк рдореЗрдВ рд░реЗрдбрд┐рд╕ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореБрдЭреЗ рдРрд╕рд╛ рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬреЛ рд▓реБрдЖ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП redisClient.eval(...) рдлрд╝рдВрдХреНрд╢рди рдХреЗ рддрд░реНрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реЛред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдореИрдВ рдмрд╕ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдорд╛рд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред

рдореЗрд░рд╛ рдкреНрд░рд╢реНрди: рдиреЛрдб.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрджреЗрд╢ рдХреЛ рдХреИрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдпрд╣ рд╡рд╣реА рдЪреАрдЬрд╝ рд▓реМрдЯрд╛рдП рдЬреЛ рд╕реАрдПрд▓рдЖрдИ (рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди-рдЗрдВрдЯрд░рдлрд╝реЗрд╕) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдХрд░рддрд╛ рд╣реИред

    $ redis-cli --eval debug_script.lua key1 key2 key3 key4 , arg1 arg2

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

--eval рдХреЛрдИ 'рдЕрд╕рд▓реА' рд░реЗрдбрд┐рд╕ рдХрдорд╛рдВрдб рдирд╣реАрдВ рд╣реИ рдмрд▓реНрдХрд┐ рд░реЗрдбрд┐рд╕-рдХреНрд▓реА рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдХрд░рдирд╛ рдЕрднреА рднреА рд╕рдВрднрд╡ рд╣реИ:

'use strict'
const redis = require('redis')
const client = redis.createClient()
const fs = require('fs')

client.eval(fs.readFileSync('./test.lua'), 2, 'key1', 'key2', 'first', 'second', function(err, res) {
  console.log(arguments);
});

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЖрдк рдХреБрдЫ рд╕реБрд░рдХреНрд╖рд╛ рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ EVAL рд▓рд┐рдП --eval рд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред --eval рдФрд░ EVAL рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдБ рдФрд░ рдкрдврд╝реЗрдВ: https://redis.io/topics/rediscli#running -lua-scripts

>рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

--eval рдХреЛрдИ 'рдЕрд╕рд▓реА' рд░реЗрдбрд┐рд╕ рдХрдорд╛рдВрдб рдирд╣реАрдВ рд╣реИ рдмрд▓реНрдХрд┐ рд░реЗрдбрд┐рд╕-рдХреНрд▓реА рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдХрд░рдирд╛ рдЕрднреА рднреА рд╕рдВрднрд╡ рд╣реИ:

'use strict'
const redis = require('redis')
const client = redis.createClient()
const fs = require('fs')

client.eval(fs.readFileSync('./test.lua'), 2, 'key1', 'key2', 'first', 'second', function(err, res) {
  console.log(arguments);
});

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЖрдк рдХреБрдЫ рд╕реБрд░рдХреНрд╖рд╛ рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ EVAL рд▓рд┐рдП --eval рд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред --eval рдФрд░ EVAL рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдБ рдФрд░ рдкрдврд╝реЗрдВ: https://redis.io/topics/rediscli#running -lua-scripts

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

juriansluiman picture juriansluiman  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Alchemystic picture Alchemystic  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

michaelwittig picture michaelwittig  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

shmendo picture shmendo  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lemon707 picture lemon707  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ