既に保存されている 2 つのキー (XXX_COUNT と XXX_TOTAL) の除算の結果を返すか、いずれかのキーが存在しない場合は 0 を返す LUA スクリプトを redis で作成しています。スクリプトのコードは次のとおりです。
local count = redis.call("GET", KEYS[1]..'_COUNT')
local total = redis.call("GET", KEYS[1]..'_TOTAL')
if not count or not total then
return 0
else
return tonumber(total)/tonumber(count)
end
問題は、スクリプトが "tonumber(total)/tonumber(count)" を返すとき、その値は常に 0 であり、すでにキーをチェックしており、redis に文字列として格納されているゼロ以外の値があることです。このスクリプトの何が問題になっていますか?
前もって感謝します!