在BookSleeve中有一个connection.Sets.GetAllString()方法。 StackExchange.Redis中的等价物是什么?
谢谢!
答案 0 :(得分:0)
StringGet有一个带有RedisKey实例数组的重载,所以这是一次获得多个字符串的最佳方法:)
答案 1 :(得分:0)
找到它:connection.SetMembers(...)从一个键中获取一组的所有字符串。
答案 2 :(得分:0)
经过大量搜索,我能想到的最好的就是滥用SetCombine(...)。基本概念是要求redis"结合"单个集合并返回结果。这将返回该单个集合中的所有值。
Sets.GetAllString(...)也返回了一个字符串数组。 SetCombine返回一个RedisValue数组。我编写了这个小扩展方法来帮助重构我正在处理的一些代码。
internal static class StackExchangeRedisExtentions
{
internal static string[] SetGetAllString(this IDatabase database, RedisKey key)
{
var results = database.SetCombine(SetOperation.Union, new RedisKey[] { key });
return Array.ConvertAll(results, item => (string)item);
}
}
// usage
string key = "MySetKey.1";
string[] values = database.SetGetAllString(key);
我不是这个解决方案的粉丝。如果我遗漏了一些明显的东西,请告诉我。我很乐意摆脱这个......