本地缓存的使用

  • 本地缓存:速度快、效率高,但分布式环境下容易出现数据不一致的问题、且缓存的数据量一般不能太大,常见的比如guava、ehcache、caffeine

实现:

可以自己用ConcurrentLinkedHashMap实现
ehcache:纯java的进程内缓存框架,快速精干,是hibernate默认的缓存管理器,缓存数据的存储有内存、硬盘两级,无需担心容量问题
caffeine:基于java8,高性能、高命中率、低内存占用,性能极高,在spring 2.x中取代guava成为默认的本地缓存组件,只在内存中存储缓存的数据
 

spring整合caffeine

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
</dependency>

<dependency>
    <groupId>com.github.ben-manes.caffeine</groupId>
    <artifactId>caffeine</artifactId>
</dependency>
spring:
  cache:
    type: caffeine
    cache-names: privilege #需要和本地缓存注解的名称一样,并且不要注入
    caffeine:
      spec: initialCapacity=50,maximumSize=500,expireAfterWrite=10m
初始容量 initialCapacity
最大容量 maximumSize
过期时间 expireAfterWrite


启动类加入开启缓存注解 @EnableCaching

 查询的实现类里面加入注解@Cachebale注解,value值和nacos里配置的一样

 

本地缓存的使用场景:

        小数据量的缓存,查询次数多,数据不容易变的数据做本地缓存。

        我的使用场景是为了防止数据泄漏,所以需要每个接口都做了统一的权限查询,但是权限在草稿状态的时候是可以修改的,但是询单一但发布,除了数据库进行修改,是不会有其他的变动的。所以权限一但赋予,基本是不会变更的,且因为每个接口都进行了鉴权,所以查询的频率会比较高。但是数据量又不是特别的高,活跃的用户并不算很多。所以选择了本地缓存。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值