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