[REDIS] 레디 스에서 중첩 된 구조의 대안?
REDIS레디 스에서 중첩 된 구조의 대안?
나는 더 레디 스 '간단한 데이터 구조의에 들어갈 수있는 것보다 저장소에 정보를 복잡하게 한 경우로 계속 실행. 나는 아직도 레디 스를 사용하려면, 그러나 중첩 된 구조를 사용하고자 할 때 이상적으로 사람들이 사용하는 표준 대안이 있는지 궁금 해서요?
해결법
-
==============================
1.당신은 기본적으로 두 가지 전략이있다 :
당신은 기본적으로 두 가지 전략이있다 :
이 답변에 간단한 예제를 참조하십시오 :
JSON에서 레코드에 LPUSH 명령 작업 초기화 된 것이다?
마지막으로, 레디 스 문서 지향 데이터베이스 아니다. 당신이 정말로 복잡한 문서를 많이 가지고 있다면, 아마도 당신은 더 나은 등등 MongoDB를, ArangoDB, CouchDB를, 카우치베이스 주식회사, 같은 솔루션이 제공 될 수 ...
-
==============================
2.개체를 수정해야 할 때 문자열로 복잡한 객체를 직렬화하고, 레디 스에 문자열을 저장하는 것은 매우 비효율적이다. 클라이언트 측에 문자열을 다시 가져올 필요가 있기 때문에, 객체로 역 직렬화 수정, 다시 문자열로 직렬화하고, 다시 레디 스에 그것을 저장. 너무 많은 일...
개체를 수정해야 할 때 문자열로 복잡한 객체를 직렬화하고, 레디 스에 문자열을 저장하는 것은 매우 비효율적이다. 클라이언트 측에 문자열을 다시 가져올 필요가 있기 때문에, 객체로 역 직렬화 수정, 다시 문자열로 직렬화하고, 다시 레디 스에 그것을 저장. 너무 많은 일...
지금, 그것은 2019, 그리고, 예를 중첩 된 데이터 구조를 지원하기 위해 레디 스를 활성화 할 수 있습니다 새로운 레디 스 모듈이있어 RedisJSON, 레디 스 - protobuf.
Desclaimer : 나는이 모듈에 대한 몇 가지 예를주지 그래서 나는 레디 스 - protobuf의 저자입니다. 또한 레디 스 - protobuf는 신속하고 그것의 사용을 직렬화하는 텍스트 형식이 아닌 바이너리 포맷 이후 / 데이터를 역 직렬화, RedisJSON보다 더 많은 메모리를 효율적입니다.
우선, 당신은 Protobuf 형식으로 중첩 된 데이터 구조를 정의하고 로컬 파일에 저장해야합니다
syntax = "proto3"; message SubMsg { string s = 1; int32 i = 2; } message Msg { int32 i = 1; SubMsg sub = 2; repeated int32 arr = 3; }
그런 다음 redis.conf에서 다음과 같은 구성으로 모듈을로드 :
loadmodule /path/to/libredis-protobuf.so --dir proto-directory
그 후, 당신은 읽고 중첩 된 데이터 구조를 작성할 수 있습니다 :
PB.SET key Msg '{"i" : 1, "sub" : {"s" : "string", "i" : 2}, "arr" : [1, 2, 3]}' PB.SET key Msg.i 10 PB.GET key Msg.i PB.SET key Msg.sub.s redis-protobuf PB.GET key Msg.sub.s PB.SET key Msg.arr[0] 2 PB.GET key Msg.arr[0]
세부 사항에 대한 문서를 확인하시기 바랍니다. 당신은 레디 스 - protobuf에 문제가 있으면 알려 주시기 바랍니다.
from https://stackoverflow.com/questions/16094574/alternatives-to-nested-structures-in-redis by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] Node.js를, Socket.io, 레디 스 펍 / 서브 높은 볼륨, 낮은 지연 시간의 어려움 (0) | 2020.01.03 |
---|---|
[REDIS] 레디 스 메모리 예외 부족하지만, 여전히 충분한 메모리를 가지고 (0) | 2020.01.03 |
[REDIS] 레디 스 지연에서 루프 가져 오기 항목의 경우 (0) | 2020.01.03 |
[REDIS] 효율적인 방법은 세트 구성원 업데이트를 레디 스 (0) | 2020.01.03 |
[REDIS] AWS에 레디 스 클러스터와 Laravel 작동하게하는 방법 (0) | 2020.01.03 |