complete redis implementation