爲什麼不打印'你好'?如何從Redis Lua腳本輸出到控制檯?
$ redis-cli
127.0.0.1:6379> eval "print('hello')" 0
(nil)
127.0.0.1:6379>
在Windows 7
我打電話從Jedis Lua腳本在Mac OS X,2.8.12運行2.8.14。發展這些就像建造一艘船,戴着連指手套,而有人在我的臉上打孔。我的最終目標是以某種方式通過打印跟蹤語句,調試等來重新創建一個半功能開發堆棧。
我的解決方法是爲我的Lua腳本使用名爲'log'的Redis列表,將其返回給Jedis,然後轉儲內容。有點兒像這樣:
redis.call('del', 'log')
redis.call('rpush', 'log', 'trace statement 1')
redis.call('rpush', 'log', 'trace statement 2')
...
redis.call('lrange', 'log', 0, -1)
預先感謝任何提示,幫助等
更新:只注意到了通過對Redis的服務器可執行的終端窗口「你好」不輸出。聰明。所以現在我是一個終端,每個用於redis-server,redis-cli interactive和redis-cli monitor。
更新2:只要想通了,我可以還挺打印跟蹤語句像這樣Redis的-CLI顯示器:
eval "redis.call('echo', 'ugh')" 0
這看起來有點像這樣:
123.456 [0 127.0.0.1:57709] "eval" "redis.call('echo', 'ugh')" "0"
123.456 [0 lua] "echo" "ugh"
我最近張貼了這個集合的這都是爲了在跟蹤和調試,以幫助方法在Redis的Lua - 希望它有助於:) https://redislabs.com/blog/5-methods-for-tracing-and-debugging-redis-lua-scripts – 2014-12-09 09:14:40
像下來的選民評論 - yah巨魔擊敗新手。 .. geeze – chrislovecnm 2015-01-30 08:47:39