Port over core's object cache test coverage, which gives us a nice set of tests out of the box
Core's behavior is to fail on `incr()` and `decr()` if the key doesn't exist.
Core expects `decr()` to never return a result less than 0
Test a subset of the object because we'll have two different Redis sockets going