本地缓存和redis缓存

缓存分为本地缓存与分布式缓存

本地缓存为了保证线程安全问题,一般使用ConcurrentMap的方式保存在内存之中,

而常见的分布式缓存则有RedisMongoDB等。

本地缓存会占用JVM内存,分布式缓存则存在访问redis服务器的网络时延,所以前者是用内存换速度,后者是用速度换内存

Guava(读作瓜哇):数据缓存到JVM内存中

和ConcurrenHashMap一样是线程安全的

而且ConcurrenHashMap只能自己去移除元素,而Guava有自己的key-value失效策略

       Cache cache = CacheBuilder.newBuilder()
                                   .initialCapacity(10)//初始容量
                                   .maximumSize(100) //设置缓存最大容量,最大存储100个key
                                   .expireAfterWrite(1,TimeUnit.MINUTES) //过期策略,写入一分钟后过期,按照LRU策略过期
                                  .build();
        cache.put("a","a1");
        String value = cache.getIfPresent("a");//不存在就返回null

先取本地缓存,本地缓存不存在就去redis中取,redis中不存在就去数据库中取,这个就是多级缓存

你可能感兴趣的:(redis,redis)