lua是一種輕量級指令碼語言,它是用c語言編寫的,跟資料的儲存過程有點類似。
我們使用lua指令碼來執行redis命令的好處:
上一章我介紹了redis的事務,其中如果在exec之前出現執行命令錯誤,例如語法錯誤,這個時候整個佇列都不會執行;如果在exec之後出現執行命令錯誤,例如hash語法操作string語法,這個時候exec能成功執行,但是在錯誤指令前的命令可以執行成功,之後的就不會被執行。那麼lua指令碼是不是也是這樣的呢?答案是肯定的,因為lua指令碼就是執行一系列redis指令碼。讓我們看下下面的操作:
我們看見這個指令碼是執行出錯,沒有一條語句成功。再看下另一種情況
由此可見lua指令碼不能解決redis語法錯誤和執行錯誤。
好了,今天的redis的lua指令碼使用功能就簡單的介紹完成了。如有錯誤,請各位大大指出,我當竭力修改。 感謝各位大大的閱讀支援!!!
Redis擴充套件功能之Lua指令碼
指令碼對於unix linux系統的使用者是再熟悉不過了。lua也是一種輕量小巧的指令碼語言,用標準c語言編寫並以源 形式開放,其設計目的是為了嵌入應用 程式中,從而為應用程式提供靈活的擴充套件和定製功能。lua應用場景 遊戲開發 獨立應用指令碼 web應用指令碼 擴充套件和資料庫外掛程式 ngin...
三 redis的高階功能之redis事務
redis單條執行命令是具有原子性的,但是如果遇到多條執行命令的時候,redis如何保證原子性,這時候redis就提供了事務的功能。redis事務是把一組命令一起執行。它會將執行命令先放入到queue中按順序執行,且不會收到其他客戶端的請求的影響,且事務不能巢狀。開啟事務 multi 需要執行的命令...
Redis高階之使用Lua指令碼開發
在redis中執行lua指令碼有兩種方法 eval和evalsha。eval 指令碼內容 key個數 key列表 引數列表127.0.0.1 6379 eval return hello keys 1 ar 1 1 redis world hello redisworld 此時keys 1 redi...