Blog Content

    티스토리 뷰

    [Python] Redis INFO 정보 출력하기


    https://pypi.python.org/pypi/redis


    #!/usr/bin/env python


    import redis
    import json
    import time


    r_total_net_output_bytes =0
    r_total_net_input_bytes  =0
    r_keyspace_hits          =0
    r_keyspace_misses        =0
    r_used_cpu_sys           =0
    r_used_cpu_user          =0
    r_used_cpu_sys_children  =0
    r_used_cpu_user_children =0

    FLAG=0

    print ("%-20s %-7s %-10s %-5s %-5s %-6s %-10s %-10s %-12s %-12s %-12s %-8s %-13s %-9s %-11s %-7s %-12s %-12s %-14s %-15s %-16s"
        % ("Time",
           "ver",
           "role",
           "port",
           "conn",
           "qps",
           "netOut",
           "netInput",
           "memory_rss",
           "used_memory",
           "mem_frag(%)",
           "evicted",
           "hit_ratio(%)",
           "key_hits",
           "key_misses",
           "CPU(%)",
           "cpu_sys(%)",
           "cpu_user(%)",
           "cpu_sys_bg(%)",
           "cpu_user_bg(%)",
           "blocked_clients"
          )
          )

    r=redis.Redis(host='localhost',port=6300)

    while 1:
               re=json.loads(json.dumps(r.info()))
               for x in re:
                         if(x == 'redis_version'):
                                    redis_version = re[x]

                         if(x == 'role'):
                                    role= re[x]

                         if(x == 'tcp_port'):
                                    tcp_port= re[x]

                         if(x == 'connected_clients'):
                                    connected_clients= re[x]

                         if(x == 'instantaneous_ops_per_sec'):
                                    instantaneous_ops_per_sec = re[x]

                         if(x == 'total_net_output_bytes'):
                                    total_net_output_bytes= re[x] - r_total_net_output_bytes
                                    r_total_net_output_bytes= re[x]

                         if(x == 'total_net_input_bytes'):
                                    total_net_input_bytes= re[x] - r_total_net_input_bytes
                                    r_total_net_input_bytes= re[x]

                         if(x == 'used_memory_rss'):
                                    used_memory_rss= re[x]

                         if(x == 'used_memory'):
                                    used_memory= re[x]

                         if(x == 'evicted_keys'):
                                    evicted_keys= re[x]

                         if(x == 'mem_fragmentation_ratio'):
                                    mem_fragmentation_ratio= re[x]

                         if(x == 'keyspace_hits'):
                                    keyspace_hits= re[x] - r_keyspace_hits
                                    r_keyspace_hits= re[x]

                         if(x == 'keyspace_misses'):
                                    keyspace_misses= re[x] - r_keyspace_misses
                                    r_keyspace_misses= re[x]

                         if(x == 'used_cpu_sys'):
                                    used_cpu_sys = re[x] - r_used_cpu_sys
                                    r_used_cpu_sys = re[x]

                         if(x == 'used_cpu_user'):
                                    used_cpu_user= re[x] - r_used_cpu_user
                                    r_used_cpu_user= re[x]

                         if(x == 'used_cpu_sys_children'):
                                    used_cpu_sys_children= re[x] - r_used_cpu_sys_children
                                    r_used_cpu_sys_children= re[x]

                         if(x == 'used_cpu_user_children'):
                                    used_cpu_user_children = re[x] - r_used_cpu_user_children
                                    r_used_cpu_user_children = re[x]

                         if(x == 'blocked_clients'):
                                    blocked_clients = re[x]
                                   
               if(FLAG != 0):
                         sum_cpu = used_cpu_sys + used_cpu_user + used_cpu_sys_children + used_cpu_user_children
                         key_hit_r = (keyspace_hits + 0.00) / ( keyspace_hits + keyspace_misses) * 100
                         lotime = time.strftime('%Y/%m/%d %H:%M:%S',time.localtime(time.time()))
                       print ("%-20s %-7s %-10s %-5s %-5s %-6s %-10s %-10s %-12s %-12s %-12.2f %-8s %-13.2f %-9s %-11s %-7.2f %-12.2f %-12.2f %-14.2f %-15.2f %-16d"
                         %(lotime,redis_version,role,tcp_port,connected_clients,instantaneous_ops_per_sec,total_net_output_bytes,total_net_input_bytes,used_memory_rss,used_memory,mem_fragmentation_ratio,evicted_keys,key_hit_r,keyspace_hits,keyspace_misses,sum_cpu,used_cpu_sys,used_cpu_user,used_cpu_sys_children,used_cpu_user_children,blocked_clients))

               time.sleep(1)
               FLAG=1

    'SOURCE' 카테고리의 다른 글

    [Python] MySQL CRUD 샘플 스크립트  (0) 2017.02.18
    [Python] MongoDB 컬렉션 사이즈 확인  (0) 2017.02.09

    Comments