[REDIS] 레디 스에게 평가 명령을 실행하는 것은 nodeJS에서 루아 스크립트를 실행하려면
REDIS레디 스에게 평가 명령을 실행하는 것은 nodeJS에서 루아 스크립트를 실행하려면
레디 스에서이 같은 CLI를 통해 루아 스크립트를 실행합니다 -
$ redis-cli --eval debug_script.lua key1 key2 key3 key4 , arg1 arg2
그래서, 내 루아 스크립트는 4 키와 2 개 인자를 받아들입니다.
지금은 Node.js.에서 동일한 스크립트를 실행하려면
나는 내 응용 프로그램에서 레디 스를 가져 오기위한이 라이브러리를 사용하고 있습니다.
나는 루아 스크립트를 실행하기위한 redisClient.eval (...) 함수의 인수에 대해 알 수있는 예를 찾을 수 없습니다.
그래서 난 그냥 힘 작업이 무작위로 뭔가를 타격하고있다. 그러나 아무것도 작동하는 것 같다 없습니다.
내 app.js는 다음과 같이 간다 :
var redis = require("redis")
var client = redis.createClient();
// my hit and trial guess
client.eval(["script_file.lua", 1 "score" 0 10 , "meeting_type:email" meeting_status:close], function(err, res){
console.log("something happened\n");
});
내 질문 : 어떻게이 CLI (명령 줄 인터페이스)를 통해 실행 않는 경우로이 같은 일을 반환 그래서, Node.js를을 사용하여 명령 아래 실행합니다.
$ redis-cli --eval debug_script.lua key1 key2 key3 key4 , arg1 arg2
해결법
-
==============================
1.몇 가지 솔루션을 찾을 수 :
몇 가지 솔루션을 찾을 수 :
해결 방법 1)
var redis = require('redis') var client = redis.createClient() var fs = require('fs') client.eval(fs.readFileSync('./debug_script.lua'), 4, key1, key2, key3, key4, arg1, arg2, function(err, res) { console.log(res); });
참고 : 4 (평가의 두 번째 인수는) 키의 수는 스크립트에 전달 될 나타냅니다.
해결 방법 2)은 자식 프로세스 실행 CLI 명령을 작성합니다.
var redis = require("redis"); var client = redis.createClient(); var exec = require('child_process').exec; var cmd = 'redis-cli --eval debug_script.lua key1 key2 key3 key4 , arg1 arg2'; exec(cmd, function(error, stdout, stderr) { // command output is in stdout console.log("something happened \n"); console.log(stdout); });
from https://stackoverflow.com/questions/44676974/executing-redis-eval-command-to-run-lua-script-in-nodejs by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] SSL을 통해 레디 스에 셀러리 연결 한 후 응답이 없습니다 (0) | 2020.02.17 |
---|---|
[REDIS] 활성 작업 / 백그라운드 작업에 파일 전달 (0) | 2020.02.16 |
[REDIS] 레디 스에서 SCAN / HSCAN 명령에 대한 COUNT의 권장 값이 있습니까? (0) | 2020.02.15 |
[REDIS] 레디 스`SCAN` : 방법과 일치하는 적절한 시간에 최종 결과를 확인 할 수 키를 newcomming 사이의 균형을 유지하기 위해? (0) | 2020.02.13 |
[REDIS] Redigo 레디 스 풀 정말 전역 변수로되어 있습니까? (0) | 2020.01.26 |