I am extremely happy with Redisson
https://github.com/redisson/redisson
It is 'pure java' (not kotlin), so is not integrated with coroutines specifically. Due to its consistent sync/async set of APIs it works well with standard async adaptors. If you use a kotlin friendly serialization ("codec" ) like jackson+kotlin you can directly map native kotlin objects to redis data .