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