2014-12-09 5 views

답변

0

을 찾았 connection.SetMembers (...)를 얻는다 키의 집합에 대한 모든 문자열.

+0

oops는 당신이 세트를 의미했는지 보지 못했고, 질문을 잘못 읽었을 것입니다 :) – Pharao2k

0

StringGet이 RedisKey-인스턴스의 배열을 취하는 과부하를 가지고, 그래서 이것은 한 번에 하나 이상의 문자열을 :) 얻을 수있는 가장 좋은 방법이 될 것입니다

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); 

나는이 솔루션의 팬이 아니다. 내가 명백한 것을 놓친 경우 알려 주시기 바랍니다. 나는 이것을 없애 버리게되어 기쁘다. ...