如題, 樓主的想法很簡單, lua 腳本本身支持原子性, 所以把命令寫進一個腳本就行, 當然后續還會優化才能放到生產上,例如緩存腳本 ,redis 本身會緩存執行過的腳本 ,這樣速度更快, 再優化, 有個專門的redis 來放 緩存的腳本,總之性能優化是多種多樣的,滿足了業務上的性能需求就好 ,今天先貼個最low 的demo
redis-cli 命令行
EVAL " local mrest=redis.call('set',KEYS[1],ARGV[1]);redis.call('expire',KEYS[1],ARGV[2]);return mrest;" 1 "rsz" "zhaoruizhi" 1000
也很好理解這段腳本 ,設置一個值,並設置它的生存時間,這只是個demo ,可能沒有什么意義,但是 ,你可以用其他的命令組和,實現一些復雜的有意義的操作哈,
再來看一個帶條件判斷的 eval "local a=10;if a==10 then return KEYS[1] ; else return ARRGV[1] end " 1 "sssd" "fdfdfd"
返回 "sssd"
我們可以記一下lua的if else 語句
if a==10 then .....;else ...... end //分支語句 。lua 不支持switch 語句,所有分支的話就用 if else實現吧 。 優化后續再記。