복붙노트

[REDIS] 레디 스에 만료되지 않는 키 찾기

REDIS

레디 스에 만료되지 않는 키 찾기

내 설정에서, 정보 명령 쇼 나 다음을 :

[keys] => 1128
[expires] => 1125

나는 만료 날짜없이 그 3 키를 찾을 싶습니다. 난 이미 아무 소용로 문서를 확인했습니다. 어떤 아이디어?

해결법

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

    1.지금은 찾을 수없는 사이트에서 수정.

    지금은 찾을 수없는 사이트에서 수정.

    redis-cli keys  "*" | while read LINE ; do TTL=`redis-cli ttl "$LINE"`; if [ $TTL -eq  -1 ]; then echo "$LINE"; fi; done;
    

    편집 : 참고,이 블로킹 호출이다.

  2. ==============================

    2.웨인 루의 대답 실행하지만 레디 스에 대해 경고하는 레디 스 KEYS 명령을 사용합니다 :

    웨인 루의 대답 실행하지만 레디 스에 대해 경고하는 레디 스 KEYS 명령을 사용합니다 :

    레디 스 문서는 스캔을 사용하는 것이 좋습니다.

    redis-cli --scan | while read LINE ; do TTL=`redis-cli ttl "$LINE"`; if [ $TTL -eq  -1 ]; then echo "$LINE"; fi; done;
    

    특정 키 패턴을 검색하려면, 사용 :

     redis-cli --scan --pattern "something*"
    
  3. ==============================

    3.경우에는 누군가가 나쁜 인수 또는 인수 오류 번호를 잘못 받고있다 $ LINE 주위에 따옴표를 넣어.

    경우에는 누군가가 나쁜 인수 또는 인수 오류 번호를 잘못 받고있다 $ LINE 주위에 따옴표를 넣어.

    그래서, 그것은 것

    redis-cli keys  "*" | while read LINE ; do TTL=`redis-cli ttl "$LINE"`; if [ $TTL -eq  -1 ]; then echo "$LINE"; fi; done;
    

    키에 공백이있을 때 발생합니다.

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

    4.

    #!/usr/bin/env python
    
    import argparse
    import redis
    
    p = argparse.ArgumentParser()
    p.add_argument("-i", '--host', type=str, default="127.0.0.1", help="redis host", required=False)
    p.add_argument("-p", '--port', type=int, default=6379, help="redis port", required=False)
    p.add_argument("-n", '--db', type=int, default=0, help="redis database", required=False)
    
    args = p.parse_args()
    
    r = redis.Redis(host=args.host, port=args.port, db=args.db)
    
    try:
        keys = r.keys()
    
        for key in keys:
            if r.ttl(key) < 0:
                print(key)
    except KeyboardInterrupt:
        pass
    
  5. from https://stackoverflow.com/questions/9817951/finding-non-expiring-keys-in-redis by cc-by-sa and MIT license