直接貼出**,實現執行lua指令碼的方法,用到的第三方類庫是 stackexchange.redis(nuget上有)
注:下面的**是簡化後的,實際使用要修改,
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 taskloadluatoserverasync(string lua)
}}
下面是測試**段
//下面是測試**
[test]
public async task loadluatoserverasync()
;var values = new list;
var result = await _kv.evallua(sha1, keys, values);
assert.areequal(fieldcontent, (string)result);
}
計算sha1用到的方法
//計算lua的sha1結果,作為執行lua的引數
public static byte calcluasha1(this string lua)
c 中用lua指令碼執行redis命令
直接貼出 實現執行lua指令碼的方法,用到的第三方類庫是 stackexchange.redis nuget上有 注 下面的 是簡化後的,實際使用要修改,csharp view plain copy using system using system.collections.generic usin...
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...