Set and SetMany sent PSETEX with 0 for a TTL under 1ms, which Redis rejects. They sent SETEX with truncated seconds for a fractional TTL, so keys expired early. A shared helper now rounds up to a millisecond and uses SETEX only for whole seconds.