gpt4 book ai didi

sql-server - Redis 225 ms 检索哈希值

转载 作者:IT王子 更新时间:2023-10-29 06:06:17 25 4
gpt4 key购买 nike

我是 Redis 的新手,我不确定为什么这个查询会花费这么长时间。它本质上是一个 json 对象的 7mb 字符串。我使用了 HGet key data,它所花费的时间平均为 225 毫秒。这实际上比同样虚拟化环境下的sql server慢。他们也分配了相同的资源。

虚拟化环境中的内置延迟在最坏情况下仅为 9000 微秒。

我什至无法理解完全缓存在内存中的东西怎么可能比在 sql 中获取相同的数据花费更长的时间。 redis 服务器花费了大约两倍的时间。下面是字符串的示例。

[ {"name":"Christopher", "advocate": "John"}, {"name": "Jane", "advocate": "John"}, 等等]

sql 只是一个完全相同信息的表。

|    name     | advocate |
| ---------- | -------- |
| Christopher | John |
| Jane | John |

对于 Hash 中较大的对象,我是否遗漏了一些可以提高性能的东西?如果完全相同的查询在内存中比 sql 慢,我无法向任何人证明使用 Redis 是合理的。我知道一旦我开始增加 sql 中的连接复杂性,我就会看到更多改进。但我只是认为我在 Redis 中可能遗漏了更多东西。

如果您需要,我可以提供更多详细信息。

最佳答案

这并不奇怪。

SQL Server 使用 TDS 返回数据。该协议(protocol)旨在高效地返回表格数据。它不会重复每一行的字段名称 - 这发生在您的 JSON 对象中。我的猜测是 JSON 表示实际上比 TDS 表示更大。由于此用例受网络带宽限制(超过延迟),Redis 似乎更慢。

请注意,无论如何,Redis 并未特别针对存储和返回大型对象进行优化。

7 MB 225 ms 代表 31 MB/s。这显然取决于管道的大小,但对于虚拟化环境来说看起来还不错。

关于sql-server - Redis 225 ms 检索哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44608204/

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