redis在一个查询中得到多个key的值?

rm5edbpk  于 2023-10-15  发布在  Redis
关注(0)|答案(3)|浏览(157)

Redis中是否有命令可以在一个查询中获取多个key的值?
实际上,我的键都是集合,所以我想得到它们的所有值,但由于成员只在参数中使用一个键,这在一个查询中可能吗?

hxzsmxv2

hxzsmxv21#

从技术上讲,这不是一个“问题”。
如果不需要联合,只想保存往返时间,则使用pipelining。例如,像这样的交易-

multi
   smembers mykey1
   smembers mykey2
exec

Redis客户端有管道机制,所有的查询都将在应用程序缓冲区中排队,并立即发送到Redis服务器。

qyzbxkaa

qyzbxkaa2#

不能在一个查询中获取多个集合的值。你必须多次查询数据库。

但是,您可以使用单个查询进行涉及多个集合的操作。此类操作的命令包括:
*SDIFF-返回由第一个集合和所有后续集合之间的差异产生的集合的成员。
*SINTER-返回由所有给定集合的交集产生的集合的成员。
*SUNION-返回所有给定集合的并集所产生的集合的成员。

6psbrbz9

6psbrbz93#

以下文档可能会对你有所帮助:http://redis.io/commands/sunion
我遇到了这样的问题,发现了Redis的这种能力。如果你只需要值,而不需要知道值的键,这就是你所需要的。
我检查了超过667个键的性能。结果如下:

方法1是667个顺序请求
方法2是667个并发请求
方法3使用 sunion

相关问题