Redis의 타임 라인에 이벤트 목록을 저장하고 싶습니다. 나는 1970 년 이래로 빠른 검색과 범위 검색을 허용하는 스코어로서 초 단위의 정렬 된 세트를 생각하고있다.Redis에서 이벤트 타임 라인 저장
문제는 몇 가지 키 (약 3 개 정도)를 사용하여 이러한 이벤트 각각을 개체로 나타내므로 정렬 된 ID 집합을 저장할 것입니다. 그러면 응용 프로그램은 다음을 기반으로 해시를 조회합니다. 신분증.
그래서 대화는 다음과 같이 갈 것이다 :> ZRANGEBYSCORE events start end
1) "16"
2) "17"
> HGETALL events:16
1) "key1"
2) "val1"
...
> HGETALL events:17
...
정리 또는 각 결과에 대한 별도의 호출을 응용 프로그램을 피할 것이다 일을 할 수있는 더 좋은 방법이있다. 이 오버 헤드를 피하기 위해 redisation 서버 측에서 모든 작업을 수행 할 수 있습니까? 심지어 큰 문제입니까?
추신. 노드 클라이언트를 사용하고 있지만 내 질문은 다른 언어에도 적용됩니다.
우리는 이와 비슷한 방식으로 비슷한 것을 사용합니다. 또한 Redis 스크립팅 브랜치를 사용하면 한 번에이 작업을 수행 할 수 있습니다. – tddmonkey
이 정보를 한 필드에 저장하는 데는 단점이 있습니까? rdbms 필드에 csv를 저장하는 것과 비슷합니까? 속도에 대한 단점입니까? – Adam
개체가 작을 때 실제적인 단점은 없습니다. 객체가 더 크고 부분 업데이트를 지원하거나 다양한 컨테이너의 객체를 공유하려는 경우 단점이 있습니다. csv에 대한 언급과 관련하여 모든 데이터베이스 시스템은 행 (DB2, PostgreSQL, Oracle 등)을 직렬화해야합니다. 대부분 가변 길이 데이터 (구분 기호 또는 크기 접두어 포함)를 지원합니다. 그들이 사용하는 형식은 최적화 된 바이너리이지만 복잡성의 관점에서 보면 직렬화 비용은 단순한 csv 행에서 얻을 수있는 것과 다르지 않습니다. –