The LowPower library will help you to minimize the amount of power used by putting the Arduino to sleep. The Arduino will awaken once the magnetic reed switch triggers it, then you can execute some code before it goes back to sleep again.
There is an example sketch that may work for you:
// **** INCLUDES *****
// Use pin 2 as wake up pin
const int wakeUpPin = 2;
// Just a handler for the pin interrupt.
// Configure wake up pin as input.
// This will consumes few uA of current.
// Allow wake up pin to trigger interrupt on low.
attachInterrupt(0, wakeUp, LOW);
// Enter power down state with ADC and BOD module disabled.
// Wake up when wake up pin is low.
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
// Disable external pin interrupt on wake up pin.
// Do something here
// Example: Read sensor, data logging, data transmission.