implemented redis