SortedSetScan的param oagesize无法正常工作

时间:2014-11-14 07:52:46

标签: stackexchange.redis

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

db.SortedSetScan(" SR.Cache.APP:Termial1"," A *",50,CommandFlags.None);

但是页面大小始终不起作用,结果计数总是全部。我的代码有什么问题?还是一个bug?

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

1 个答案:

答案 0 :(得分:1)

是的,结果总是&#34;全部&#34;。在发出基础ZSCAN命令时,页面大小只会影响往返次数与每次调用的数据量。然而,IEnumerable<T>是懒惰等,所以如果您只想要前50个项目,请使用:

db.SortedSetScan(...).Take(50)
相反,它将执行它需要的任何操作,以获得50个项目。调整页面大小只会更改需要的操作数。思考&#34;我将页面大小设置为50因此只需要一次操作&#34; - 它没有这样的工作;无论页面大小如何,redis *SCAN命令都可以返回空白页面或打开一个或两个项目的页面。页面大小更多是&#34;在放弃此迭代之前需要注意多少事情&#34; redis的指导。这在redis SCAN documentation上有更全面的描述 - 特别是,阅读它所说的&#34; COUNT选项&#34;。

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

您可能还想考虑&#34;范围&#34;方法更合适(注意:他们不允许使用模式过滤器)。