2016-02-05 143 views
1

我在Lua腳本中有「Hello World」程序。 我試圖從(巧克力)Redis客戶端調用腳本。 我一直得到這個錯誤 (錯誤)ERR錯誤編譯腳本(新函數):user_script:1:函數參數預計接近'。'從redis客戶端運行Lua腳本時出錯

Redis的腳本: 「hello.lua」

local msg = "Hello, world!" 
return msg 

的巧克力Redis的客戶端:

127.0.0.1:6379> EVAL "D:\hello.lua" 0 

錯誤消息

(error) ERR Error compiling script (new function): user_script:1: function argument expected near '.' 

回答

4

EVAL接受腳本本身,而不是文件名。

試試這個:

EVAL 'local msg = "Hello, world!" return msg' 0 

編輯:在文件中執行腳本,redis-cli提供--eval開關,您可以使用如下:

redis-cli --eval <path-to-script-file> [key1 [key2] ...] , [arg1 [arg2] ...] 

我不熟悉與Windows分叉,但它應該很有可能支持它。

在* nix中,你還可以使用shell提供腳本的內容到CLI,例如:

redis-cli SCRIPT LOAD "$(cat path-to-script-file)" 

將加載文件的Redis的內容。在Windows中應該有類似的方法來實現這一點,但這超出了我目前的範圍;)

+0

感謝您的快速回復Itamar。我終於可以看到輸出。我一直在努力掙扎。再次感謝你。你也可以幫助我如何從redis客戶端調用lua scipt文件。如何將參數傳遞給文件並接受從腳本文件返回的值。 – invincible

+0

我假設你使用Windows cli作爲客戶端 - 正確嗎? –

+0

我在Windows cmd中使用「啓動redis-server」和「啓動redis-cli」命令分別啓動Redis服務器和客戶端。他們也是命令提示符,我試圖從這個客戶端獲取數據。 – invincible