As of 2017, both Redis and Hazelcast offer highly available\scalable key\value storage. With very fast response times < 10ms.
Redis is unique in that it supports other data structures like sored sets, hash sets and a pub\sub mechanism. It's also extensible via lua scripting. It is probably the most popular and widely used of the two products. Especially outside of the Java ecosystem.
Hazelcast is unique in that it can be embedded in a Java host process, making it great for building stateful microservices without an external database dependency. It also has some other small differences, like the ability to get a call back from a key expiration. In a sense, it does less overall but the few things it does, it does them better. Especially if you're using Java.
Overall these are similar solutions designed for similar use cases like caching external data, creating a communication backplane or shared memory state for a stateful microservice, or possibly even storing (small amounts of non-relational) business data with some degree of durability.