2017-09-28 4 views
0

나는 redis에 익숙하지 않고 class 또는 structStackExchange.Redis으로 보내는 방법을 궁금합니다.StackExchange.Redis 구조체 보내기

그래서 나는 내 값이 원시적 인 경우에만 실제로 가능하다

var redis = ConnectionMultiplexer.Connect("localhost"); 
    var db = redis.GetDatabase(); 
    db.StringSet(key, value); 

작성한다고 가정 할 수 있습니다. 그렇다면 json으로 직렬화하지 않고 복잡한 유형을 전송하는 다른 방법이 있습니까?

+0

Google은이 패키지를 사용하여 다음 작업을 수행했습니다. https://www.nuget.org/packages/CachingFramework.Redis/ - 추가 처리 작업을 저장하려면 다음을 수행하십시오. – Arran

답변

1

Redis가 class 또는 struct을 인식하지 못하기 때문에이를 저장하는 방법을 정의해야합니다. 권장되는 방법은 객체를 해시로 저장하는 것입니다. 여기서 키는 속성 이름이고 값은 속성 값입니다. 이것은 객체 그래프를 지원하지 않습니다. 중첩 된 컬렉션 또는 복합 유형 (그래서 백 또는 최대 몇 수단) 아주 작은 공간을 차지하는 방법에 저장되어있는 몇 가지 분야에

해시는 수백만 개의 개체를 저장할 수 있도록 다음 documentation on data types 당으로

작은 Redis 인스턴스에서.

또는 직접 개체를 serialize하고 string/byte[]으로 저장할 수 있습니다. Json은 데이터의 속성 이름을 포함하는 하나의 형식으로 버전 관리에 적합합니다. 예 : 새 속성이 추가되면 기존 데이터를 모두 변경하지 않아도됩니다. 단점은 많은 공간을 차지한다는 것입니다. 다른 형식의 직렬화도 사용할 수 있습니다 (예 : binary serialization.