【发布时间】:2012-10-09 17:15:41
【问题描述】:
我一直在 C# 中使用 Booksleeve 作为我的 redis 驱动程序,并且对它非常满意 - 但我遇到了对排序集进行一些工作的需要。似乎这些在 Booksleeve 中只得到了极少的支持——例如,没有像 ZUNIONSTORE 或 ZINTERSTORE 这样的命令的实现。
我发现 scobrown's fork of Booksleeve on Github 声称已经实现了这些操作,但我一直在使用 NuGet 的“官方”包,我不确定是否要切换到另一个 fork。
有没有人使用过这个叉子?它对于生产代码是否足够稳定和可靠?
否则,有没有人想出任何其他解决方法来解决需要在排序集上执行交集或联合之类的操作?我一直在做类似以下的事情:
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中执行交集。有没有更好的办法?
【问题讨论】:
-
你考虑过 ServiceStack 吗?我目前不使用 C#,所以我无法从个人经验中发言,但从我听到的印象中,ServiceStack 开发更加活跃。
-
我简要了解了 ServiceStack,但最初选择 Booksleeve 是因为我喜欢它提供的多路复用样式实现。但是,如果无法进行所需的各种操作,我可能不得不切换,但是
标签: c# redis booksleeve