[Codemash] Caching Made "Bootiful"!

10

Click here to load reader

Transcript of [Codemash] Caching Made "Bootiful"!

Page 1: [Codemash] Caching Made "Bootiful"!
Page 2: [Codemash] Caching Made "Bootiful"!

whoiam

Señor Solutions Architect @Hazelcast@gAmUssA on the internetz

Page 3: [Codemash] Caching Made "Bootiful"!

• Performance

• Offload expensive parts of your architecture

• Scale up – get the most out of one machine

• Scale out – add more capacity with more machines

• Usually very fast and easy to apply

Cache is good for…

Page 4: [Codemash] Caching Made "Bootiful"!
Page 5: [Codemash] Caching Made "Bootiful"!

Let’s recap!

Page 6: [Codemash] Caching Made "Bootiful"!

© 2017 Hazelcast Inc. @gamussa

0. Inception

public class SpringwebinarApplication {

public static interface CityService {

public String getCity();

}

@Bean

public CityService getService() {

return new CityService() {

@Override public String getCity() {

// slow code goes here!

return result;

}

};

}

}

Page 7: [Codemash] Caching Made "Bootiful"!

© 2017 Hazelcast Inc. @gamussa

1. Enable Caching

import org.springframework.cache.annotation.Cacheable;

import org.springframework.cache.annotation.EnableCaching;

@SpringBootApplication

@EnableCaching

public class SpringwebinarApplication {

public static interface CityService {

@Cacheable("city")

public String getCity();

}

@Bean

public CityService getService() {

return new CityService() {

@Override public String getCity() {

// slow code goes here!

return result;

}

};

}}

Page 8: [Codemash] Caching Made "Bootiful"!

© 2017 Hazelcast Inc. @gamussa

2. Enable Distributed Caching

import org.springframework.cache.annotation.Cacheable;

import org.springframework.cache.annotation.EnableCaching;

@SpringBootApplication

@EnableCaching

public class SpringwebinarApplication {

public static interface CityService {

@Cacheable("city")

public String getCity();

}

@Bean

public CityService getService() {

return new CityService() {

@Override public String getCity() {

// slow code goes here!

return result;

}

};

}

@Bean

public HazelcastInstance getInstance() {

// return Hazelcast.newHazelcastInstance();

return HazelcastClient.newHazelcastClient();

}

}

Page 9: [Codemash] Caching Made "Bootiful"!

© 2017 Hazelcast Inc. @gamussa

3. Embrace the standards – Enable JCache

import javax.cache.annotation.CacheResult;

import org.springframework.cache.annotation.EnableCaching;

@SpringBootApplication

@EnableCaching

public class SpringwebinarApplication {

public static interface CityService {

@CacheResult(cacheName = "city")

public String getCity();

}

@Bean

public CityService getService() {

return new CityService() {

@Override public String getCity() {

// slow code goes here!

return result;

}

};

}}

Page 10: [Codemash] Caching Made "Bootiful"!