在ServiceStack中使用RedisClient的Eval / Lua操作?

时间:2012-09-18 13:01:03

标签: redis servicestack

我有一个实体

  

公共课程书

     

{

     

public long Id {get;组; }

     

public string BookName {get;组; }

     

public int ISBN {get;组; }

     

public string作者{get;组; }

     

}

我想基于非关键字段作者过滤记录,如:

从书中选择*,其中作者='琼斯'

我不想通过“GetAll”函数获取所有记录,然后执行filterin gon列表。

我在IRedisClient接口中听到名为

的Eval / Lua操作

string GetEvalStr(string body,int numOfArgs,params string [] args);

int GetEvalInt(string body,int numOfArgs,params string [] args);

列出GetEvalMultiData(string body,int numOfArgs,params string [] args);

但我不知道如何在我的情况下使用这些功能。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

Eval无济于事,你仍然需要获取所有记录并循环遍历它们(只是用不同的语言)。在你的情况下,我会说没有什么选择:如果你需要通过作者查看书籍,你应该为每个包含他们书籍ID的作者保留一套。

这确实意味着数据将被复制,但这是在非关系数据存储中构建关系的唯一方法。