我一直在使用 Booksleeve 作为我在 C# 中的 redis 驱动程序,并且对它非常满意 - 但我遇到了对排序集进行一些工作的需要。似乎这些在 Booksleeve 中只得到最低限度的支持——例如,没有像 ZUNIONSTORE 或 ZINTERSTORE 这样的命令的实现。
我在 Github 上找到了 scobrown 的 Booksleeve 分支,它声称已经实现了这些操作,但我一直在使用 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 中执行。有没有更好的办法?