Redis(鍵值存儲)支持lua腳本 - 它在服務器上執行腳本。我正在使用java客戶端與Redis進行交互。我將一個字節數組傳遞給lua和lua,我將不得不將其轉換爲int或字符串。在lua中將字節數組轉換爲雙重
以下是java代碼段
byte[] exclScore = ByteBuffer.allocate(8).putDouble(1.5).array();
args.add(exclScore);
argS對類型字節的ArrayList []
以下是,我試圖
byteScore = table.remove(ARGV)
size = string.len(byteScore)
x = string.sub(byteScore,1,1)
local output = 0
for i = 1,size do
bit = tonumber(string.sub(byteScore,i,1))
val2 = bit * (2^i)
output = output + val2
end
return output
ARGV的LUA腳本是表它接收java客戶端發送的所有參數,分數是最後一個條目。我檢查了類型(byteScore),結果是字符串。 tonumber()返回一個零(這是我得到的錯誤,因爲我把它乘以2)
是否有無論如何我們可以將該字節數組轉換爲雙倍或字符串表示形式的雙(1.5)在lua?請注意,我們不能在redis腳本中使用任何外部lua庫。
任何幫助表示讚賞。提前致謝。
這似乎是最好的選擇(LUA外消毒數據)。謝謝。 – Raghava 2012-02-16 23:40:29