gpt4 book ai didi

c# - Windows 本地主机上的 Redis 性能

转载 作者:可可西里 更新时间:2023-11-01 11:32:11 24 4
gpt4 key购买 nike

我在本地机器上安装了一个 Redis 实例。该实例包含 147,848 个序列化对象。我需要检索所有对象然后应用一些逻辑。我知道没有办法一次检索所有对象,所以首先我将所有键都作为

var keys = client.GetAllKeys();

然后我遍历 key 以获取 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);
}

所有这个过程,获取所有 key ,然后检索所有对象并反序列化它们,大约需要 32 秒

对于 15 万个对象

  1. 获取所有 key 只用了 0.4 秒
  2. 获取所有值用了 16 秒
  3. 反序列化用了 6 秒

还有另一个 Redis 实例,它有 100 万个对象和

  1. 获取所有 key 用了 2 秒
  2. 获取所有值用了 64 秒
  3. 反序列化用了 29 秒

有什么方法可以提高性能吗?

最佳答案

我认为你可以通过使用多线程来提高性能(你可以使用c# parallel for)。请注意,Redis 是一个单线程应用程序,持久性的获得将在反序列化步骤中进行。

如果我是你,我会测量获取所有键、所有值和反序列化所有值所需的时间。有了这些信息,您可以更好地了解哪个部分最慢。

关于c# - Windows 本地主机上的 Redis 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39193480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com