복붙노트

[REDIS] 레디 스에서 가장 큰 개체를 찾을 수있는 가장 쉬운 방법은 무엇입니까?

REDIS

레디 스에서 가장 큰 개체를 찾을 수있는 가장 쉬운 방법은 무엇입니까?

내가 생산에 20GB의 +의 RDB 덤프가 있습니다. 나는 그것을 복부 팽만 키의 특정 세트가있다 생각한다. 난 항상 정적 덤프 분석의 첫 번째 100 개의 가장 큰 물체를 탐지하거나 7M 객체를 비켜 그런데이 서버 자체에 요청할 수있는 방법이 싶습니다.

rdbtools 같은 덤프 분석 도구는이 (내가 생각하는) 정말 일반적인 사용 사례에 도움이되지 않습니다!

나는 스크립트를 작성하는 생각과 반복 처리를 "레디 스-CLI 디버그 개체"로 전체 키 집합을,하지만 난 느낌이 저는 누락 된 일부 도구가 있어야합니다.

해결법

  1. ==============================

    1.옵션은 레디 스-CLI에 추가되었습니다 레디 스-CLI --bigkeys을

    옵션은 레디 스-CLI에 추가되었습니다 레디 스-CLI --bigkeys을

    https://gist.github.com/michael-grunder/9257326에 기초하여 출력 샘플

    $ ./redis-cli --bigkeys
    
    # Press ctrl+c when you have had enough of it... :)
    # You can use -i 0.1 to sleep 0.1 sec every 100 sampled keys
    # in order to reduce server load (usually not needed).
    
    Biggest string so far: day:uv:483:1201737600, size: 2
    Biggest string so far: day:pv:2013:1315267200, size: 3
    Biggest string so far: day:pv:3:1290297600, size: 5
    Biggest zset so far: day:topref:2734:1289433600, size: 3
    Biggest zset so far: day:topkw:2236:1318723200, size: 7
    Biggest zset so far: day:topref:651:1320364800, size: 20
    Biggest string so far: uid:3467:auth, size: 32
    Biggest set so far: uid:3029:allowed, size: 1
    Biggest list so far: last:175, size: 51
    
    
    -------- summary -------
    
    Sampled 329 keys in the keyspace!
    Total key length in bytes is 15172 (avg len 46.12)
    
    Biggest   list found 'day:uv:483:1201737600' has 5235597 items
    Biggest    set found 'day:uvx:555:1201737600' has 47 members
    Biggest   hash found 'day:uvy:131:1201737600' has 2888 fields
    Biggest   zset found 'day:uvz:777:1201737600' has 1000 members
    
    0 strings with 0 bytes (00.00% of keys, avg size 0.00)
    19 lists with 5236744 items (05.78% of keys, avg size 275618.11)
    50 sets with 112 members (15.20% of keys, avg size 2.24)
    250 hashs with 6915 fields (75.99% of keys, avg size 27.66)
    10 zsets with 1294 members (03.04% of keys, avg size 129.40)
    
  2. ==============================

    2.레디 스-RDB-도구는 정확히 당신이 필요 않는 메모리 보고서를 가지고있다. 그것은 모든 키에 사용되는 메모리와 CSV 파일을 생성합니다. 그런 다음 그것을 정렬하고 상위 키를 X 찾을 수 있습니다.

    레디 스-RDB-도구는 정확히 당신이 필요 않는 메모리 보고서를 가지고있다. 그것은 모든 키에 사용되는 메모리와 CSV 파일을 생성합니다. 그런 다음 그것을 정렬하고 상위 키를 X 찾을 수 있습니다.

    당신이 필요로하는 일을 시작한다는 실험 메모리 프로파일도 있습니다. 그 아직 완료되지, 그래서 문서화되어 있지 않습니다. 그러나 당신은 그것을 시도 할 수 있습니다 - https://github.com/sripathikrishnan/redis-rdb-tools/tree/master/rdbtools/cli을. 물론, 당신이 아니라 기여 보시기 바랍니다!

  3. ==============================

    3.나는 bash는 스크립트에 아주 새로운 오전. 나는이 나왔다 :

    나는 bash는 스크립트에 아주 새로운 오전. 나는이 나왔다 :

    for line in $(redis-cli keys '*' | awk '{print $1}'); do echo `redis-cli DEBUG OBJECT $line | awk '{print $5}' | sed 's/serializedlength://g'` $line; done; | sort -h
    

    이 스크립트

    이는 bash는 매 레디 스 키를 통해 반복된다는 사실에 매우 느려질 수 있습니다. 당신은 당신이 파일에 키의 아웃 넣어 캐시해야 할 수 있습니다 7m 키를 가지고있다.

  4. ==============================

    4."B A"또는 "A : B : *"이 패턴에 따라 키가있는 경우, 둘 다 기존의 콘텐츠를 분석뿐만 아니라 적중률, 취득 / 설정, 네트워크 트래픽의 수와 같은 것들에 대한 모니터 도구를 썼다 , 수명 등의 출력은 아래와 같은 것이다.

    "B A"또는 "A : B : *"이 패턴에 따라 키가있는 경우, 둘 다 기존의 콘텐츠를 분석뿐만 아니라 적중률, 취득 / 설정, 네트워크 트래픽의 수와 같은 것들에 대한 모니터 도구를 썼다 , 수명 등의 출력은 아래와 같은 것이다.

    https://github.com/alexdicianu/redis_toolkit

    $ ./redis-toolkit report -type memory -name NAME
    +----------------------------------------+----------+-----------+----------+
    |                     KEY                | NR  KEYS | SIZE (MB) | SIZE (%) |
    +----------------------------------------+----------+-----------+----------+
    | posts:*                                |      500 |      0.56 |     2.79 |
    | post_meta:*                            |      440 |     18.48 |    92.78 |
    | terms:*                                |      192 |      0.12 |     0.63 |
    | options:*                              |      109 |      0.52 |     2.59 |
    
  5. ==============================

    5.레디 스 - 메모리 분석을 시도 - 키 패턴에 의해 실시간으로 집계 메모리 사용량 통계에 스캔 레디 스 키 공간에 콘솔 도구를. 당신은 프로덕션 서버에서 유지 보수없이이 도구를 사용할 수 있습니다. 그것은 당신의 레디 스 봉사에 각 키 패턴에 대한 통계를 자세히 보여줍니다.

    레디 스 - 메모리 분석을 시도 - 키 패턴에 의해 실시간으로 집계 메모리 사용량 통계에 스캔 레디 스 키 공간에 콘솔 도구를. 당신은 프로덕션 서버에서 유지 보수없이이 도구를 사용할 수 있습니다. 그것은 당신의 레디 스 봉사에 각 키 패턴에 대한 통계를 자세히 보여줍니다.

    또한 당신은 "문자열", "해시", "목록", "설정", "ZSET"모든 또는 선택한 레디 스 유형에 의해 레디 스의 DB를 검색 할 수 있습니다. 매칭 패턴도 지원합니다.

    응용 프로그램 일반적인 패턴 골라 것 :와 '101 사용자 : 대부분의 메모리에 데이터 고민 분석 할 수 있도록 출력에'사용자 * '는'100 사용자 '와 같은 키가있는 경우 RMA는 예를 들어, 패턴에 의해 분별 키 이름에 시도 인스턴스.

  6. from https://stackoverflow.com/questions/13673058/what-is-the-easiest-way-to-find-the-biggest-objects-in-redis by cc-by-sa and MIT license