소스 코드 분석 (14 세)를 레디 스 - dump.rdb 파일 분석 도구

RDB 파일 분석 도구

설치

git clone https://github.com/sripathikrishnan/redis-rdb-tools.git
sudo pip install --upgrade pip
sudo pip install python-lzf

n 인 키 시작 분석

rdb --command justkeyvals --key  "n*" /home/kou/redis_tar/redis-3.0-annotated/src/dump.rdb

[kou@python ~]$ od -c  /home/kou/redis_tar/redis-3.0-annotated/src/dump.rdb
0000000   R   E   D   I   S   0   0   0   6 376  \0  \0 004   n   a   m
0000020   e 005   h   o   d   g   e 377 004   | 313 025   =   G   % 310
0000040

JSON 형식으로 출력한다 파싱

[kou@python ~]$ rdb --command json /home/kou/redis_tar/redis-3.0-annotated/src/dump.rdb
[{
"name":"hodge"}]

데이터베이스, 종류, 형식, 키를 지정합니다

rdb -c json --db 2 --type hash --key "a.*"

보고서 생성 메모리

[kou@python ~]$ rdb -c memory /home/kou/redis_tar/redis-3.0-annotated/src/dump.rdb
database,type,key,size_in_bytes,encoding,num_elements,len_largest_element,expiry
0,string,name,56,string,5,5,

단일 결합에 의해 사용되는 메모리를 찾기

redis-memory-for-key -s localhost -p 6379 -a mypassword person:1

레디 스 프로토콜 스트림 프로토콜에 RDB 파일

rdb --c protocol 

당신은 netcat을에 파이프를 수출하고 데이터의 하위 집합으로 재 도입 할 수 있습니다. 데이터 레디 스 개의 인스턴스로 세분화 될 경우, 예를 들어, 서브 - 키를 플래그 데이터를 선택하기 위해 사용하고, 그 데이터를로드하기 위해 실행중인 인스턴스 레디 스 출력을 통과 할 수있다. 자세한 내용은 레디 스 대량 삽입을 참조하십시오.

출력 프로토콜을 인쇄하는 경우는 인쇄 옵션 또는 인쇄 불가능 UTF8 않도록 사용 / 제어 문자 -escape 함께 사용될 수있다.

RDB 파일을 비교

> rdb --command diff /var/redis/6379/dump1.rdb | sort > dump1.txt
> rdb --command diff /var/redis/6379/dump2.rdb | sort > dump2.txt
然后,运行您喜欢的差异程序

> kdiff3 dump1.txt dump2.txt

결과


[kou@python ~]$ rdb  --command justkeyvals --key  "n*" /home/kou/redis_tar/redis-3.0-annotated/src/dump.rdb

name hodge
게시 된 257 개 원래 기사 · 원 찬양 223 · 전망 320 000 +

추천

출처blog.csdn.net/csdn_kou/article/details/103582748