a read-write redis wrapper