indexes.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:data007 作者: mobishift2011 项目源码 文件源码
def clear_date(date):
    conn = getconn(date)
    pattern = '*_{}*'.format(date)

    def flush_all(r):
        print 'clearing {} on {}'.format(r, date)
        r.flushdb()

    def clear_conn_lua(r):
        script = '''
        for _, k in ipairs(redis.call('keys', ARGV[1])) do 
            redis.call('del', k) 
        end
        '''
        r.eval(script, 0, pattern)

    def clear_conn(r):
        print 'clearing {} on {}'.format(r, date)
        p = r.pipeline()
        cursor = 0
        while True:
            cursor, keys = r.scan(cursor, match=pattern, count=100000)
            print 'curosr {}, keys {}'.format(cursor, len(keys))
            if len(keys):
                p.delete(*keys)
            if int(cursor) == 0:
                break
        p.execute()

    tasks = []
    for r in conn.conns:
        t = threading.Thread(target=flush_all, args=(r,))
        t.start()
        tasks.append(t)

    for t in tasks:
        t.join()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号