项目中如果有使用大量的本地缓存场景,可以使用redis+ehcache组合缓存,优先使用ehcache本地缓存,本地缓存没有查询到再使用redis缓存
可看前文中如何集成
本地缓存使用存在的问题
1、本地缓存如何保证缓存的是最新值
可定义版本号、自增id或者时间戳,进行判断比对是否是最新值
2、各个节点保证本地缓存一致性
保证各个节点的一致性,且不影响性能,常使用消息进行发布订阅或者是广播模式进行同步
public class CustomerCache implements org.springframework.cache.Cache {
void evict(Object key);
void put(Object key, @Nullable Object value);
<T> T get(Object key, Callable<T> valueLoader);
}
针对以上3个主要方法,
PUT
void put(Object key, @Nullable Object value){
// 数据都得保存一份到redis
boolean success = redis.put