0

RedisサーバーでDB0を開き、そのサーバーでデータを処理して、DB1に書き込みたい。DB0には約300万のキーがあります。ハードディスクの動作を減らすために、「CONFIG SET save "300 10000"」を使用して、サーバーが5分ごとにディスクに書き込むようにします。これは私のコードです:

    import redis

    idLinkoutIds = redis.Redis(host='127.0.0.1', port=6379, db=0)
    idLinkinIds = redis.Redis(host='127.0.0.1', port=6379, db=1)

    i = 0
    allKeys = idLinkoutIds.keys() # There're 3,228,675 keys.

    for key in allKeys:
        if i % 100000 == 0:
            print str(i / 10000) + ' million ids completet'
        i += 1

        linkOutIds = idLinkoutIds.lrange(key, start=0, end=-1)
        for eachKey in linkOutIds:
            idLinkinIds.lpush(eachKey, key) # Write to DB1
        idLinkoutIds.delete(key) # DB0 is useless, I just need DB1

    idLinkoutIds.save()      
    idLinkinIds.save()

    print 'Done'

100万個のキーが処理されると、Redisサーバーがシャットダウンし、「ConnectionError:Error 10061connected127.0.0.1:6379」が発生しました。次に、試してみるためにidLinkoutIds.delete(key)を削除し、80万個のキーが処理されたときにサーバーを再度シャットダウンします。

64ビットOSと8GRAMを使用しているので、ハードウェアの理由ではないと思います。だから私は本当に混乱しています。サーバーがシャットダウンしました。誰が私に方向性を与えることができますか。

4

0 に答える 0