Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. import argparse
  2. import redis
  3.  
  4. parser = argparse.ArgumentParser(description='Get sizes using key pattern.')
  5. parser.add_argument('pattern', metavar='PATTERN', nargs=1,
  6. help='pattern to use')
  7. parser.add_argument('--host', dest='host', default='localhost',
  8. help='redis host')
  9. parser.add_argument('--port', dest='port', default=6379,
  10. help='redis port')
  11. parser.add_argument('--db', dest='db', default=0,
  12. help='redis db')
  13.  
  14. args = parser.parse_args()
  15.  
  16. def main():
  17. host = args.host
  18. port = args.port
  19. db = args.db
  20. cli = redis.Redis(host=host, port=port, db=db)
  21. pattern = args.pattern[0]
  22.  
  23. for key in cli.scan_iter(pattern):
  24. key_type = cli.type(key)
  25. if key_type == 'string':
  26. size = cli.strlen(key)
  27. if key_type == 'list':
  28. size = cli.llen(key)
  29. if key_type == 'set':
  30. size = cli.scard(key)
  31. if key_type == 'zset':
  32. raise NotImplementedError
  33. if key_type == 'hash':
  34. size = cli.hlen(key)
  35.  
  36. print('{}, {}, {}'.format(key_type, key, size))
  37.  
  38. if __name__ == '__main__':
  39. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement