redis와 함께 protobuf를 사용할 필요가 전혀 없습니다. 핵심은 대개 간단합니다 : 오늘, 내일 및 내년에 데이터를 안정적으로 얻을 수있는 직렬화 프레임 워크를 선택하는 것입니다. 당신은 json, xml 등을 사용할 수 있습니다. 많은 경우, 하나의 문자열 값이 직렬화를 완전히 우회하기에 충분합니다 (직렬화로 "인코딩"하지 않는 한).
일반적으로 플랫폼 독점 직렬화에 대해 조언합니다. 이는 수년 내에 데이터를 C++로 다시 가져와야하는 경우 도움이되지 않을 수 있으며 일반적으로 버전 관리 측면에서 유연성이 떨어집니다.
Protobuf는 같은 주요 기능이 같은 합리적인 선택 :
- 작은 출력을
- CPU를 효율적으로 처리 (앱에서 처리를 감소 (응용 프로그램 및 레디 스, 스토리지 요구 사항 사이의 대역폭 감소))
- ,
그러나 버전 허용
크로스 플랫폼을 위해 설계된 다른 무척 lizers도 작동합니다. 일반 텍스트와 redis 해시, 즉 객체 속성 당 해시 속성을 사용할 수도 있습니다. 그러나 대부분의 경우 전체 객체를 가져 오려고하므로 간단한 "get"및 적절한 직렬화 API에 대한 데이터 전달이 일반적으로 더 적절합니다. 우리 자신의 redis 사용에서 우리는 을 수행합니까?은 protobuf를 사용하지만, 우리는 또한 "protobuf 출력을 gzip으로 압축합니까?" - 그럴 경우 gzip 데이터를 보냅니다 (또는 작은 경우 원래의 압축되지 않은 데이터를 저장하고 분명히 해당 데이터를 나타내는 마커).
재 지정 맵의 값은 바이트 배열입니다. redis get 작업 후에 바이트 배열을 캐스팅하는 바이트 형식으로 개체를 직접 넣는 것처럼 간단한 직렬화 프레임 워크가 있습니까? 내 개체에 대한 문자열 클래스 getBytes() 인터페이스와 같은 것이 필요합니다. – user1017860