Doesn't redis return negative numbers if a key has expired or doesn't have a ttl? Checked the Redis backend, which seems to run ttl against the connection without interpretation.

Riak backend seems to return nil, so seems like it's reasonable for the redis backend to return nil if ttl < 0