我需要从 Redis 服务器获取大约 10k 的哈希值。由于在 redis 中没有获取多个哈希的命令,我使用 db.HashGetAllAsync()
调用遍历所有键,然后等待所有任务完成。尽管它有效,但在这些调用期间,我在 RedisLabs 仪表板上看到了显着的延迟峰值。
有什么方法可以同时得到很多哈希值吗?也许有任何 ConnectionMultiplexer
设置可以帮助解决这种情况?
最佳答案
没有 varadic hgetall
,所以是的:最简单的方法是通过管道传输大量单独的 hgetall
。您甚至可能做的唯一另一件事是使用 Lua 脚本 (eval
/evalsha
) 在每个项目中生成多个项目,但我看不出这将如何减少服务器负载或带宽,因此似乎不值得尝试!
无论哪种方式,是的:这将在服务器上生成一些工作。
关于c# - 使用 StackExchange.Redis 从 Redis 获取多个哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29099455/