ServiceStack.Net:IRedisNativeClient.Eval和EvalCommand之间的区别

时间:2017-03-21 11:39:12

标签: .net servicestack servicestack.redis

我是ServiceStack.Net Framework的新手,我想了解以下方法之间的差异:

public byte[][] Eval(string luaBody, int numberKeysInArgs, params byte[][] keys)
public RedisData EvalCommand(string luaBody, int numberKeysInArgs, params byte[][] keys)

基于源代码,主要区别在于第一个调用使用SendExpectMultiData请求,第二个命令发送RawCommand。

那么我何时应该使用第一种方法而不是第二种方法呢?这些方法的推荐用法是什么?

1 个答案:

答案 0 :(得分:3)

IRedisNativeClient API是低级的,通常与它调用的原始Redis Server API 1:1匹配。 IRedisClient上的API更高级且更易于使用,例如RedisDataExtensions可以轻松转换为Text并使用.GetResult<T>()方法反序列化为复杂类型。