add redis lock implementation