Optimizing Code in Java
Pavlos Kosmetatos
Lead Engineer @Wealthyhood
Caching is like keeping our frequently used cooking ingredients on the kitchen counter instead of in the cupboard - it's faster to access, but we have limited counter space
We commonly cache:
// In-memory cache using HashMap
public class SimpleCache<K, V> {
private final Map<K, V> cache = new HashMap<>();
public V get(K key) {
return cache.get(key);
}
public void put(K key, V value) {
cache.put(key, value);
}
}
What is Redis:
import redis.clients.jedis.Jedis;
// Using Jedis client
Jedis jedis = new Jedis("localhost");
jedis.set("key", "value");
String value = jedis.get("key");
Additional features:
public class RedisTimedCache {
private final Jedis jedis;
public RedisTimedCache(String host, int port) {
this.jedis = new Jedis(host, port);
}
public String get(String key) {
return jedis.get(key);
}
public void put(String key, String value, int timeToLiveSeconds) {
// Sets both the value and expiration time in seconds
jedis.setex(key, timeToLiveSeconds, value);
}
}
Optimizing Code in Java