springboot集成jetcache实际操作

资源准备:

        1)可以进行缓存读写的redis服务

        2)可以服务调用的springboot正常项目

代码集成:

1、依赖引入

 <!--jetcache缓存技术的引入-->
        <dependency>
            <groupId>com.alicp.jetcache</groupId>
            <artifactId>jetcache-starter-redis</artifactId>
            <version>2.5.11</version>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.1</version>
        </dependency>
        <!--redis 依赖common-pool2 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
            <version>2.4.3</version>
        </dependency>

 推荐这个配置,如果只引入第一个,测试发现无法调用redis使用@cached等方式不起作用

2、配置文件里进行redis设置

jetcache:
  statIntervalMinutes: 15
  areaInCacheName: false
  hidePackages: com.sasa.demo
  local:
    # 默认2小时本地缓存
    default:
      type: caffeine
      keyConvertor: fastjson
      expireAfterWriteInMillis: 3600000
      expireAfterAccessInMillis: 1800000
  remote:
    # 默认2小时的远程缓存
    default:
      type: redis
      expireAfterWriteInMillis: 43200000
      keyConvertor: fastjson
      valueEncoder: kryo
      valueDecoder: kryo
      poolConfig:
        minIdle: 5
        maxIdle: 20
        maxTotal: 50
      host: ${REDIS_HOST:redis的ip}
      port: ${REDIS_PORT:16379}

 3、启动类注解

@EnableMethodCache(basePackages = "com.sasa.demo")//项目主路径
@EnableCreateCacheAnnotation

4、方法注解使用

@Service
public class CacheTestServiceImp implements CacheTestService {

    @Override
    @Cached(name="ls:dlc:int",key="#id",cacheType=CacheType.REMOTE)
    public String cacheReadAndWriter(String id) {
        return getData(id);
    }

    public String getData(String id){
        System.out.print(id);
        User u=new User();
        u.setId(id);
        u.setName("dhj");
        return u.getName();
    }
}

还有其他注解方式,就不多罗列几个了


版权声明:本文为dhj393338原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。