我想在我的 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 10061 connected 127.0.0.1:6379”。然后我删除 idLinkoutIds.delete(key) 只是为了尝试,并在处理 80 万个密钥时再次关闭服务器。
我认为这不是硬件原因,因为我使用的是 64 位操作系统和 8G RAM。所以我真的很困惑。服务器刚刚关闭。谁能给我一个方向。