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

2021-07-09 08:02:34 字數 1205 閱讀 3077

直接貼出**,實現執行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...