使用Booksleeve执行ZINTERSTORE的选项?

时间:2012-10-08 01:09:30

标签: c# redis booksleeve

我一直在使用Booksleeve作为我在C#中的redis驱动程序而且对它非常满意 - 但我遇到了需要对排序集进行一些工作。似乎这些只在Booksleeve中只有最小的支持 - 例如,没有像ZUNIONSTORE或ZINTERSTORE这样的命令的实现。

我发现scobrown's fork of Booksleeve on Github声称已经实施了这些操作,但我一直在使用NuGet的“官方”软件包,我不确定是否转而使用另一个分支。

有没有人有使用这个分叉的经验?对于生产代码来说它是否稳定且可靠?

否则,是否有人提出任何其他需要在排序集上进行交叉或联合等事情的解决方法?我一直在做类似以下的事情:

var set = await conn.SortedSets.Range(db, firstSet, 0, -1);
set = set.Intersect(await conn.SortedSets.Range(db, secondSet, 0, -1));
set = set.Intersect(await conn.SortedSets.Range(db, thirdSet, 0, -1));

有一个明显的缺点,即需要一次检索一个集合的全部内容,并使用.NET的IEnumerable<>.Intersect()而不是在redis中执行交集。还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我已合并到johanalkemad's branch,其中包括SortedSets.UnionAndStoreSortedSets.IntersectAndStore。 Build 1.1.0.9已被推送到NuGet。