spring-boot-ultimate-redis
Last updated
Last updated
This is an example repository to discover ways of interacting with Redis (from a Spring Boot 3 Application).
Connect to redis-cli using below command
Run keys * command to view all keys
A Spring Boot 3 Application
Using @Cacheable, @CachePut, @CacheEvict to cache results of method invocations
Use Redis to store the cached results
Define different TTLs for different Caches
What is Redis Sentinel?
Redis Sentinel is the high-availability solution for open-source Redis server. It provides monitoring of all Redis nodes and automatic failover should the master node become unavailable. This guide provides a sample configuration for a three-node Redis cluster. For additional details, see the official documentation here.
Monitoring: This is basically when sentinel checks if the master and slave instances are working as expected.
Notification: This is when the sentinel notifies other programs or other system administrators via an API when there is something wrong with the monitoring instances.
Automatic Failover: On a master failure, the sentinel promotes one of the slaves to become the new master and then makes the other additional slaves use the new master.
We will run 1 master,1 slave and 3 sentinel instance.
The quorum is the number of Sentinels that need to agree about the fact the master is not reachable, in order to really mark the master as failing, and eventually start a failover procedure if possible.
However, the quorum is only used to detect the failure. In order to actually perform a failover, one of the Sentinels need to be elected leader for the failover and be authorized to proceed. This only happens with the vote of the majority of the Sentinel processes.
REDIS_SENTINEL_QUORUM
: Number of Sentinels that need to agree about the fact the master is not reachable. Default: 2.
MASTER: Setting to read from the upstream only.
MASTER_PREFERRED: Setting to read preferred from the upstream and fall back to a replica if the master is not available.
UPSTREAM: Setting to read from the upstream only.
UPSTREAM_PREFERRED: Setting to read preferred from the upstream and fall back to a replica if the upstream is not available.
REPLICA_PREFERRED: Setting to read preferred from replicas and fall back to upstream if no replica is available.
REPLICA: Setting to read from the replica only.
ANY: Setting to read from any node.
We are using REPLICA_PREFERRED in here but this configuration can be important in production!