假设我有一个带有一百万个键的 Redis 实例。键包含团队 ID 和人员 ID,值包含有关团队与人员关联的一些信息。键示例:
team:1:person:123
team:2:person:234
team:2:person:345
...
Run Code Online (Sandbox Code Playgroud)
我可以使用scan带有模式的 a 来获取给定团队中的所有人员。例如,scan 0 match "team:123:person:*"会开始让团队 123 中的每个人都加入。
听起来这不是迭代团队中人员的有效方法,因为扫描的时间复杂度为 O(N),其中 N 是数据库中键的数量。但我想确认一下——是这样吗?
具有树索引的数据库可能只需要扫描树的一小部分,以及具有该前缀的键。
如果它确实扫描了所有内容,那么我想如果我想快速迭代团队中的人员,我需要将人员 ID 集存储在团队 ID 下。就像是:
sset team:2:people 234 345 ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3868 次 |
| 最近记录: |