【发布时间】:2017-01-04 17:32:36
【问题描述】:
我在本地机器上安装了一个 Redis 实例。该实例包含 147,848 个序列化对象。我需要检索所有对象,然后应用一些逻辑。我知道没有办法一次检索所有对象,所以首先我将所有键作为
var keys = client.GetAllKeys();
然后我遍历键以获取 json,然后将它们反序列化为
var keys = client.GetAllKeys();
foreach (string key in keys)
{
var sobj = client.Get<string>(key);
MyClass desobj = JsonConvert.DeserializeObject<MyClass>(sobj);
myList.Add(desobj);
}
所有这些过程,获取所有键,然后检索所有对象并反序列化它们,大约需要 32 秒。
对于 15 万个对象
- 获取所有密钥耗时 0.4 秒
- 获取所有值需要 16 秒
- 反序列化耗时 6 秒
还有一个 Redis 实例有 100 万个对象和
- 获取所有密钥需要 2 秒
- 获取所有值需要 64 秒
- 反序列化耗时 29 秒
有什么办法可以提高性能吗?
【问题讨论】:
标签: c# windows performance redis