2016-12-05 242 views
2

使用c#查询redis中二级索引的最有效(最快的方式)方式是什么? (使用StackExchange.Redis)。在redis中查询二级索引的最有效方法

SET "users:departmentx"包含100 000个或更多用户的密钥,而实际的用户信息存储在与该组中的值同名的密钥中。

所有的用户都储存像"user:1""user:2"

执行"SSCAN" "users" 0 "COUNT" "100"将返回类似:

user:1 
user:2 
user:3 
user:4 
[...] 

为了得到信息,然后我会打电话

MGET <values from sscan above> 

哪个临危的正确的数据。但是,查询所有用户的值的最快和最有效的方式是什么,换句话说,使用SSCAN的输出作为MGET的输入?

Lua脚本?流水线?

回答

0

看起来你已经以最有效的方式做到了。

最快的可能是一个Lua脚本,但这样做会违背推荐/要求明确地传递所有被触摸的键。

如果可能的话,流水线总是很好的,但是因为你只是做一个MGET它不会有效果。