1.eval
評估腳本內容密鑰編號密鑰列表參數列表
如果Lua腳本很長,還可以使用redis-cli-eval直接執行文件。
如果客戶端想要執行Lua腳本,它應該首先在客戶端編寫Lua腳本代碼,然後將腳本作為字符串發送到服務器,服務器將向客戶端返回執行結果。
2.evalsha
將Lua腳本加載到Redis服務器,並獲取腳本的sha1校驗和。evalsha命令可以使用sha1作為參數直接執行相應的Lua腳本,從而避免了每次發送Lua腳本的開銷。這樣,客戶端不需要每次都執行腳本內容,腳本也將駐留在服務器上,並且腳本內容已被重用。
加載腳本:腳本加載命令可以將腳本內容加載到Redis內存中。
Lua的Redis API
Lua可以通過使用redis.call函數來訪問Redis。
redis.call(“集合”、“妳好”、“世界”)
redis . call(“get”、“hello”)
此外,Lua還可以使用Redis.pcall函數來調用Redis。redis.call和redis.pcall的區別在於,如果redis.call執行失敗,腳本執行將直接返回錯誤,而redis.pcall將忽略錯誤並繼續執行腳本。
Lua腳本功能為Redis開發人員和運營商帶來了以下三個好處:
1。Lua腳本在Redis中自動執行,在執行過程中不會插入其他命令。
2.Lua腳本可以幫助開發人員和操作人員創建自己定制的命令,並可以將這些命令保留在Redis內存中以達到重用效果。
3.Lua腳本可以壹次打包多個命令,有效減少網絡開銷。
Redis如何管理Lua腳本
1 .腳本加載
該命令用於將Lua腳本加載到Redis內存中。
2 .腳本存在
腳本存在sha 1【sha 1…】
該命令用於確定sha1是否已加載到Redis內存中。
3 .腳本沖洗
該命令用於清除Redis內存中加載的所有Lua腳本。執行腳本刷新後,sha1不再存在。
4 .劇本殺