only 1 redis insert command per struct to ensure atomicity