/**
* 本地缓存
*/
private Cache<String, Integer> localCache = CacheBuilder.newBuilder()
.concurrencyLevel(16) // 并发级别
.initialCapacity(1000) // 初始容量
.maximumSize(1000) // 缓存最大长度
.expireAfterAccess(1, TimeUnit.HOURS) // 缓存1小时没被使用就过期
.build();
Caffeine
import com.github.benmanes.caffeine.cache.Cache;
public Cache<String,Object> caffeineCache(){
return Caffeine.newBuilder().expireAfterWrite()
.initialCapacity(600,TimeUnit.SECONDS)
.maximumSize(1000)
.build();
}
1:先查询缓存 ---缓存没有再查询数据库----查询后缓存在本地缓存中
2:删除或者更新,在更新数据库的地方,先更新数据库,再删除缓存(或者删除数据场景,也是先删除数据库,再删除缓存)
Redis
1:统计计数(increment,decrement)
2:标记位(bitmap)
3:松散数据(hash)
4:先进先出、队列式读取(list)