Stackexchange.redis SortedSetScan的参数oagesize无法工作

Stackexchange.redis SortedSetScan的参数oagesize无法工作,stackexchange.redis,Stackexchange.redis,我正在使用SortedSetScan过滤一些数据,我的代码如下: 数据库SortedSetScan(“SR.Cache.APP:Termial1”,“A*”,50,CommandFlags.None) 但是页面大小总是不起作用,结果计数总是全部。我的代码怎么了?还是一只虫子 任何人都可以帮助我,谢谢 是的,结果总是“全部”。当发出底层ZSCAN命令时,页面大小只会影响往返次数,而不是每次调用的数据量。但是,IEnumerable是惰性的,因此如果您只需要前50项,请使用: db.SortedSe

我正在使用SortedSetScan过滤一些数据,我的代码如下:

数据库SortedSetScan(“SR.Cache.APP:Termial1”,“A*”,50,CommandFlags.None)

但是页面大小总是不起作用,结果计数总是全部。我的代码怎么了?还是一只虫子


任何人都可以帮助我,谢谢

是的,结果总是“全部”。当发出底层
ZSCAN
命令时,页面大小只会影响往返次数,而不是每次调用的数据量。但是,
IEnumerable
是惰性的,因此如果您只需要前50项,请使用:

db.SortedSetScan(...).Take(50)
相反,它将执行任何需要的操作,以获得50个项目。调整页面大小只需更改所需的操作数。认为“我将使页面大小为50,这样只需要一次操作”是不正确的——它不是这样工作的;redis
*SCAN
命令可以返回空页面,或返回打开一个或两个项目的页面,而不管页面大小。页面大小更像是redis的“在放弃这个迭代之前要看多少东西”指南。这在上有更详细的描述,尤其是阅读它关于“计数选项”的内容

请注意,通过将
IEnumerable
IEnumerator
强制转换为
IScanningCursor
,并获得作为参数提供的光标详细信息,可以在以后恢复从所有SE.Redis扫描操作中获得的序列

您可能还想知道“range”方法是否更合适(注意:它们不允许模式过滤器)