[REDIS] 500메가바이트 레디 스의 dump.rdb 파일은 5.0GB 메모리에 대해 왜 필요?
REDIS500메가바이트 레디 스의 dump.rdb 파일은 5.0GB 메모리에 대해 왜 필요?
사실, 난 3 개 레디 스 인스턴스를 가지고 있고이 5백메가바이트 + dump.rdb에 함께 넣어. 레디 스 서버는이 dump.rdb를 읽을 수 있으며 모든 것이 괜찮아 보인다. 그럼 난 더 5.0GB 메모리보다 그 레디 스 서버 비용을 알 수 있습니다. 난 이유를 모르겠어.
거기에 아무것도 내 파일이 잘못인가? 내 DB는 각 키에 대한 값 목록 (80 개) 정수에 대해 포함하고, 만 3에 대한 키가 있습니다.
나는 함께 3 인스턴스를 넣어이 방법을 사용합니다.
PS : 동일한 크기와 동일한 키 값 구조 비용 만의 1GB의 메모리와 다른 dump.rdb.
그리고 KEYNUM처럼 내 데이터 외모 -> {NUM1, NUM2, num3, ...}. 모든 숫자는 1과 4,000,000 사이입니다. 그래서 나는 그들을 저장하는 목록을 사용해야합니까? 지금, 나는 lpush (K, V)를 사용합니다. 이 방법은 비용이 너무 많이 했습니까?
해결법
-
==============================
1.덤프 메모리 크기의 비율은 레디 스 내부적으로 사용하는 데이터의 종류에 따라 달라진다.
덤프 메모리 크기의 비율은 레디 스 내부적으로 사용하는 데이터의 종류에 따라 달라진다.
작은 물체 (해시,리스트 및 sortedsets)의 경우, 데이터를 인코딩하는 데 사용 된 ziplists를 레디 스. 정수로 만들어진 작은 세트의 경우, 사용의 Intsets을 레디 스. 그들은 메모리에 저장되므로 ZipLists 및 IntSets 같은 형식으로 디스크에 저장됩니다. 데이터가 이러한 인코딩을 사용하는 경우 : 1의 비율 그래서, 당신은 일을 기대.
큰 객체의 경우, 메모리의 표현은 디스크상의 표현과 완전히 다르다. 온 디스크 포맷은 메모리 조각화 처리하지 않고, 포인터가없는, 압축됩니다. 당신의 객체가 큰 경우에 따라서, 10 : 디스크 비율 1 메모리는 일반적인 예상이다.
당신은 당신의 데이터를 프로파일 링, 사용 레디 스-RDB-도구를 메모리를 먹고 오브젝트를 알고 싶은 경우. , redis.io의 메모리 최적화 노트뿐만 아니라 레디 스-RDB-도구에 대한 메모리 최적화 위키 항목이 수행에서.
-
==============================
2.이 더 그것에 수 있지만 나는 레디 스 덤프 파일을 압축 믿을 수 있습니다.
이 더 그것에 수 있지만 나는 레디 스 덤프 파일을 압축 믿을 수 있습니다.
from https://stackoverflow.com/questions/13243701/why-a-500mb-redis-dump-rdb-file-takes-about-5-0gb-memory by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 여러 프로젝트와 dev에 컴퓨터에 데이터베이스 레디 스 (0) | 2020.01.18 |
---|---|
[REDIS] 레디 스-CLI를 사용하여 이해 지연 (0) | 2020.01.18 |
[REDIS] 봄 - 데이터 - 레디 스를 사용하여 레디 스 멀티 Exec에서 구현하는 방법 (0) | 2020.01.18 |
[REDIS] 어떻게 계층 적 데이터를 저장하는 데 레디 스를 사용 하는가? (0) | 2020.01.18 |
[REDIS] Node.js를을 사용하여 클러스터 ElastiCache에 연결하는 방법 (0) | 2020.01.18 |