前言
經常會有這樣一種業務邏輯,就是需要根據Redis中Key的規則,模糊查詢對應的數據,當數據量少時,利用常規的命令也能滿足需求,但是數據量大時,就會導致堵塞,就算是采用不堵塞的函數,如果數據需要顯示的話,顯示結果的時間也比較慢,用戶體驗不好。
Lua腳本
Redis 自2.6.0版本之后,就內置了Lua腳本,可以執行相關Lua腳本,提高操作效率;具體Lua腳本大家百度自行學習,不難;
應用:
這里記錄的是在C#中的簡單使用,其他語言也類似;
引用的包StackExchange.Redis, 我這里用的是2.0.601的版本;
代碼實例:
如上圖,這個方法是根據一個模糊Key值進行查詢,中間字符串拼接的字符串就是lua腳本,使用redis.call()方法來執行Redis對應的指令;
然后將結果解析返回到前台;其他變量都是一些封裝,其中db這個類型是IDatabase類型,相信用redis的小伙伴看見這個類型就明白了。
總結:
親測這樣的速度比直接執行循環get, 或執行mget指令效率好很多, 以上只是記錄一個思路,lua腳本可以做很多事,不僅僅是查詢,增刪改查都可以,特別對批量操作,效率很不錯。
關注公眾號,每周更新至少兩篇關於.NetCore相關文章