Hash 从redis高效查询多个哈希

Hash 从redis高效查询多个哈希,hash,redis,Hash,Redis,我希望在redis中有一些对象数据,并希望在表中显示所有对象 在SQL中,我只需要获取所有对象的整行,并将其显示在视图中 在redis中,我不想单独查询每个散列,因为这将是无法忍受的慢 假设我知道要提取的散列键和散列名称,有没有办法有效地执行此操作?我不知道为什么您认为查询每个散列的速度会非常慢。如果您循环使用散列键,并使用字段名为每个字段执行HMGET,那么如果您通过管道处理请求,您应该会做得很好 或者,您可以在一个Lua脚本中执行此操作,该脚本接受(部分)键名作为键,字段作为ARGV,并以您

我希望在redis中有一些对象数据,并希望在表中显示所有对象

在SQL中,我只需要获取所有对象的整行,并将其显示在视图中

在redis中,我不想单独查询每个散列,因为这将是无法忍受的慢


假设我知道要提取的散列键和散列名称,有没有办法有效地执行此操作?

我不知道为什么您认为查询每个散列的速度会非常慢。如果您循环使用散列键,并使用字段名为每个字段执行HMGET,那么如果您通过管道处理请求,您应该会做得很好

或者,您可以在一个Lua脚本中执行此操作,该脚本接受(部分)键名作为键,字段作为ARGV,并以您需要的任何格式返回答案。

  • 将所有哈希键存储在一个集合中,我们称之为“哈希键集”
  • 使用“sort”命令检索所有哈希值sort hashkeyset get*->field0 get*->field1。。。获取*->fieldN
  • 您可以在此链接中找到有关“排序”的更多信息

redis本身速度很快,但问题是,对redis的每个请求都需要经过约200ms的RTT,这导致结果返回速度很慢。我可以在欧洲设置RedisLabs吗?这可能会减少网络时间?200ms确实是一个很长的rtt。是的,Redis Cloud在AWS eu west提供。你的应用程序也在那里运行吗?是的,服务器和主数据库都在那里。当我使用redis时,我不确定redis和服务器在哪里。。那是一片模糊