What would be the “proper” way to implement a simple persistent key/value store?

Unless someone edits the database directly, the cache shouldn’t get out of sync with the database in that design.

I would not bother with the cache just yet unless you’re reading these values rapidly. These reads are going to be very quick.