my redis version is 5.0.7.
when i debug my lua srcipt
./redis-cli --ldb --eval temp/testhmset.lua mymap , key1 value1 key2 value2 key3 value3
and execute unpack(ARGV) only get first args.
[root@ redis-bin]# ./redis-cli --ldb --eval temp/testhmset.lua mymap , key1 value1 key2 value2 key3 value3
Lua debugging session started, please use:
quit -- End the session.
restart -- Restart the script in debug mode again.
help -- Show Lua script debugging commands.
* Stopped at 1, stop reason = step over
-> 1 local array = unpack(ARGV)
lua debugger> whole
-> 1 local array = unpack(ARGV)
2 local key = KEYS[1]
3 redis.call('hmset',key,array)
4 return 1
lua debugger> print ARGV
<value> {"key1"; "value1"; "key2"; "value2"; "key3"; "value3"}
lua debugger> e unpack(ARGV)
<retval> "key1"
lua debugger>
Does it a bug?
Comment From: maketubo
[root@ redis-bin]# ./redis-cli --ldb --eval temp/testhmset.lua mymap , key1 value1 key2 value2 key3 value3
Lua debugging session started, please use:
quit -- End the session.
restart -- Restart the script in debug mode again.
help -- Show Lua script debugging commands.
* Stopped at 1, stop reason = step over
-> 1 local array = unpack(ARGV)
lua debugger> restart
Lua debugging session started, please use:
quit -- End the session.
restart -- Restart the script in debug mode again.
help -- Show Lua script debugging commands.
* Stopped at 1, stop reason = step over
-> 1 redis.call('hmset',KEYS[1],unpack(ARGV))
lua debugger> whole
-> 1 redis.call('hmset',KEYS[1],unpack(ARGV))
2 return 1
lua debugger> step
<redis> hmset mymap key1 value1 key2 value2 key3 value3
<reply> "+OK"
* Stopped at 2, stop reason = step over
-> 2 return 1
lua debugger>
maybe i make a mistake in unpack.