c 中用lua指令碼執行redis命令

2022-07-20 04:54:08 字數 1343 閱讀 8926

直接貼出**,實現執行lua指令碼的方法,用到的第三方類庫是 stackexchange.redis(nuget上有)

注:下面的**是簡化後的,實際使用要修改,

[csharp]view plain

copy

using system;  

using system.collections.generic;  

using system.linq;  

using system.net;  

using system.threading.tasks;  

using stackexchange.redis;  

namespace tl.cloud.kv  

private void init(publiccloudkvconfig config)  

private  iserver getserver()  

,  abortonconnectfail = false,  

allowadmin = true  

};  

var conn = connectionmultiplexer.connect(config);  

return conn.getserver(config.endpoints[0]);  

}  public taskevallua(string lua, ilistkeys, ilistvalues)  

public async taskevallua(byte luasha1, ilistkeys, ilistvalues)  

public async task loadluatoserverasync(string lua)  

}  }  下面是測試**段

[csharp]view plain

copy

//下面是測試**  

[test]  

public async task loadluatoserverasync()  

;  var values = new list;  

var result = await _kv.evallua(sha1, keys, values);  

assert.areequal(fieldcontent, (string)result);  

}  計算sha1用到的方法

[csharp]view plain

copy

//計算lua的sha1結果,作為執行lua的引數  

public  static byte calcluasha1(this string lua)  

c 中用lua指令碼執行redis命令

直接貼出 實現執行lua指令碼的方法,用到的第三方類庫是 stackexchange.redis nuget上有 注 下面的 是簡化後的,實際使用要修改,using system using system.collections.generic using system.linq using sys...

Redis指令碼外掛程式之 執行Lua指令碼示例

redis在2.6推出了指令碼功能,允許開發者使用lua語言編寫指令碼傳到redis中執行。使用指令碼的好處如下 在redis客戶端機器上,新建乙個檔案ratelimiting.lua,內容如下 local times redis.call incr keys 1 if times 1 then r...

redis指令碼使用Lua直譯器執行

redis在2.6之前,指令碼使用lua直譯器來執行指令碼,2.6之後內嵌了lua環境,執行指令碼命令使用eval.evla命令語法 eval script numkeys key key arg arg eval return 2 key1 key2 first second 1 key1 2 k...