3

我在 C# 中使用 Redis Servicestack。目前,我存储数据的方式如下:

var listTypedRedis = db.As<MyObject>();

foreach (var obj in myObjects)
{
       listTypedRedis.AddItemToList(listTypedRedis.Lists["urn:list"], obj);
}

我成功存储了大约 6000 条记录。我在检索记录时遇到问题,因为它似乎比 SQL 慢。

用了 Redis 138ms,用了 SQL 105ms

我检索数据的方式如下:

return (db.As<MyObject>().Lists["urn:list"].GetAll());

我上面的代码有问题吗?是因为反序列化导致它这么慢吗?谢谢!

4

1 回答 1

1

每当处理远程数据存储时,请尽可能考虑使用批处理方法。例如,在 ServiceStack.Redis 中,您可以使用AddRangeToList将多个项目添加到列表中。

Redis 中的每个操作都会进行一次网络调用,您希望尽可能地对其进行优化。RedisClient中有许多批处理操作,它还支持流水线和流水线操作(redis 文档),并允许您在更少的套接字写入中批处理多个操作。

于 2012-10-09T19:53:03.457 回答