我正在尝试从生产中的Redis中检索N个密钥。当我尝试从Redis Server获取keys *
时,它会在很长的响应时间后返回所有密钥(My Redis服务器一次包含最少约10M的行)。因此,在搜索解决方案后,我找到了HSCAN
命令来获取N个密钥。但是在Redis文档中它说:
只有当迭代集合的大小仍然限制在给定的最大大小时,才能保证SCAN算法终止,否则迭代总是增长的集合可能导致SCAN永远不会终止完整的迭代。 这很容易直观地看出:如果集合增长,为了访问所有可能的元素,还有越来越多的工作要做,并且终止迭代的能力取决于对SCAN的调用次数及其与COUNT选项值的比较。收集率增长的速度。
我以为我无法使用此解决方案,因为我的Redis服务器总是在白天将键值对写入哈希值。哈希总是在增长,并且在终止HSCAN
命令时可能会出现问题。