我是 Redis 新手,开始使用 redis 哈希来存储一些对象,我遇到了一些非常意想不到的性能问题。我在本地托管在 vmware 播放器上的 Ubuntu 机器上运行 redis。
我的虚拟机是两个核心,4 GB 内存。
这是我正在尝试的代码。
using (var redis = new RedisClient())
{
using (var client = redis.As<MyClass>())
{
var hash = client.GetHash<Guid>("urn:class");
var items = hash.Values;
}
}
哈希包含从我们的实体模型添加的大约 2000 个项目。在我的运行过程中,要从哈希中取出所有值需要 7 秒,即使对于我实例中 redis 的一点硬件,这似乎也很高。对相同数据的普通 LINQ to Entity 查询需要 0.25 秒。
我在这里做错了什么吗?考虑到我听到的所有关于 redis 性能的好消息,这似乎是错误的。
编辑:2013 年 7 月 12 日
这似乎是一个 WCF 问题。这篇文章Using Redis to Scale Web Services基本上反映了我的结果。我所做的测试是这样的。
使用 1683 个对象检索 Redis 哈希
- IIS 中的 WCF 服务:7 秒
- ASP.NET Web API:0.8 秒
- NodeJS 只是为了好玩:0.8 秒
Web Api 和 Node 运行起来就像一个魅力,运行起来接近我运行 redis-benchmark 的时代。