首页 > 其他 > 详细

如何有效删除Redis中比较大的Hash Key

时间:2016-02-16 15:05:23      阅读:488      评论:0      收藏:0      [点我收藏+]

生产上由于业务设计原因,有一些500M的Hash Key,现在已经没有用了,需要删除,如果直接删除会造成Redis的卡顿影响线上正常的业务。那么处理有两个方案:

  •      在一个夜深人静的时刻,流量低点进行操作(运维真是苦逼啊!)

  •      写个脚本,把Hash里面的内容一条一条删除(Python大法好啊!)

   
Python脚本:
      于是变有了这个脚本,很Low,很实用:

# -*- coding: UTF-8 -*-
‘‘‘
    python redis_hash_del.py HASH_KEY_NAME
‘‘‘

# Import python libs
import sys
import redis

# Args Input filter
if len(sys.argv) <= 1:
    print "python sys.argv[0] HASH_KEY_NAME"
    sys.exit()
else:
    hashkey = sys.argv[1]

# redis_hash_del online
def redis_hash_del(hashkey):
    ‘‘‘
    delete redis hash key
    ‘‘‘
    r = redis.Redis(host=‘192.168.0.118‘,port=6379,db=0)
    if r.exists(hashkey):
        hashkey_all = r.hkeys(hashkey)
        for i in range(len(hashkey_all)):
	    r.hdel(hashkey, hashkey_all[i])
        print i
    else:
        print "KEY NOT EXISTS"

if __name__ == "__main__":
    redis_hash_del(hashkey)[/i]


  使用方法:

    手动修改脚本里面的IP地址和端口,然后:

python redis_hash_del.py HASH_KEY_NAME


如何有效删除Redis中比较大的Hash Key

原文:http://unixhot.blog.51cto.com/1110045/1742432

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!