reimplemented redis