I wrote a Go library for postgres & redis that handles all caching automatically.
where all you do is input the queries your application needs and then it will automatically determine which columns are affected & do all caching / cache invalidation for you.
I have it to the point where due to Redis being able to push onto a list that only writes hit the database & it even will update the cache keys automatically so that after an insert or update the cache is still hot.