我想通過使用使用ServiceStack.Redis
c#連接redis。Lua腳本優化
我已經寫下面的代碼來驗證基於指定密鑰的數字。
argv[1]
是關鍵
argv[2]
是數
string strScript = " local intCurrentVal = redis.call('GET', '' .. ARGV[1] .. ''); \n"
+ "if (tonumber(intCurrentVal) <= 0) then return 1 elseif ( (tonumber(intCurrentVal)) - (tonumber('' .. ARGV[2] .. '')) < 0) then return 0 end;"
+ "local intUpdatedVal = redis.call('SET', '' .. ARGV[1] .. '',(intCurrentVal - tonumber('' .. ARGV[2] .. '')));"
+ "local intCurr = redis.call('GET', '' .. ARGV[1] .. ''); return intCurr";
邏輯步驟:
- 得到的電流值
- 檢查,如果電流值不應該是小於或等於0
- 檢查是否存在租值 - 傳遞值應不小於Ø
- 如果當前值 - 傳遞不那麼少0,則設置(當前值 - 傳遞)作爲當前值
- 獲取當前值
是否有可能優化和調整以下lua腳本的性能。請幫忙。
它必須在交易區塊內。 – user2771292
什麼事務塊? – Schollii
關於我們每秒鐘談論多少次交易?你有沒有分析過,發現Lua腳本是問題? – dualed