feat(backend): add redis backend