Implementing your own caching algorithm
In this section, let us start by implementing a simple cache algorithm and see its draw backs, and then show how spring caching can be used to solve the problems.
Let's draw a simple flow chart to look at the caching scenario:
Let's see how we can implement caching in a simple way. Think of generating a Fibonacci number. A Fibonacci number is generated by adding its previous two Fibonacci numbers. So we can compute a simple class in java and see how we can use caching here.
Let's create a map to cache the objects:
import java.util.HashMap; import java.util.Map; public class FibonacciCache { private Map<Long, Long> cachemap = new HashMap<>(); public FibonacciCache() { // The base case for the Fibonacci Sequence cachemap.put(0L, 1L); cachemap.put(1L, 1L); } public Long getNumber(long index) { // Check if value is in cache if (cachemap.containsKey(index)) { return cachemap.get(index); } ...