There is a very handy lib - Redisson. It provides distributed Java objects and services (BitSet, BloomFilter, Set, SortedSet, Map, ConcurrentMap, List, Queue, Deque, BlockingQueue, BlockingDeque, ReadWriteLock, Semaphore, Lock, AtomicLong, CountDownLatch, Publish / Subscribe, RemoteService, ExecutorService, LiveObjectService, ScheduledExecutorService) on top of Redis server!
It supports cluster, sentinel, master/slave and single connection modes.
Perfectly works in cloud and supports AWS Elasticache and Azure Redis Cloud
Below are some success stories from Redisson customers:
Moving from Hazelcast to Redis
Distributed Locking with Redis (Migration from Hazelcast)
Please note: I'm an author of Redisson